0x608060405260036005556006805460ff19169055600780546001600160a01b031990811673c61ab5f125102487da6ea04d27c74e06f9034c461790915560088054821673d070544810510865114ad5a0b6a821a5bd2e7c491790556009805490911673d378dbed86689d0dba19ca2bab322b6f2376528817905534801561008557600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506038600052600360205266038d7ea4c680007f22848320af6c4894685e387cf97d56ba798f5dabcd8f3a2db70374776f0f2f93556111c58061010a6000396000f3fe6080604052600436106101405760003560e01c80638da5cb5b116100b6578063d3c0f1c81161006f578063d3c0f1c814610396578063d96073cf146103b6578063e0bf7fd1146103c9578063e204f25c146103f9578063e4c0aaf414610419578063f2fde38b1461043957600080fd5b80638da5cb5b146102d857806395bf75fd146102f6578063998cdf8314610316578063c024666814610336578063c2f355d514610356578063cc4611941461037657600080fd5b80632d2b3ed7116101085780632d2b3ed71461021c57806336ecf57c146102495780634778fefb14610269578063558377571461028e578063715018a6146102ae57806385659de1146102c357600080fd5b806309e9e949146101455780630c340a241461017a578063119b4909146101b257806320aaa55d146101cc5780632c7d077e146101ee575b600080fd5b34801561015157600080fd5b50610165610160366004610fe4565b610459565b60405190151581526020015b60405180910390f35b34801561018657600080fd5b5060085461019a906001600160a01b031681565b6040516001600160a01b039091168152602001610171565b3480156101be57600080fd5b506006546101659060ff1681565b3480156101d857600080fd5b506101ec6101e7366004610f0c565b61047d565b005b3480156101fa57600080fd5b5061020e610209366004610fcc565b6104d8565b604051908152602001610171565b34801561022857600080fd5b5061020e610237366004610fcc565b60009081526003602052604090205490565b34801561025557600080fd5b506101ec610264366004610f0c565b61050e565b34801561027557600080fd5b5060065461019a9061010090046001600160a01b031681565b34801561029a57600080fd5b506101656102a9366004610f0c565b61055a565b3480156102ba57600080fd5b506101ec6105a9565b3480156102cf57600080fd5b5060055461020e565b3480156102e457600080fd5b506000546001600160a01b031661019a565b34801561030257600080fd5b5060075461019a906001600160a01b031681565b34801561032257600080fd5b50610165610331366004610fcc565b61061d565b34801561034257600080fd5b506101ec610351366004610f26565b610698565b34801561036257600080fd5b506101ec610371366004610fe4565b6106ed565b34801561038257600080fd5b5060095461019a906001600160a01b031681565b3480156103a257600080fd5b506101ec6103b1366004610f5c565b610729565b6101ec6103c4366004610fe4565b61086a565b3480156103d557600080fd5b506101656103e4366004610f0c565b60046020526000908152604090205460ff1681565b34801561040557600080fd5b506101ec610414366004610f94565b6109e5565b34801561042557600080fd5b506101ec610434366004610f0c565b610a22565b34801561044557600080fd5b506101ec610454366004610f0c565b610a6e565b600081815260026020908152604080832085845290915290205460ff165b92915050565b6000546001600160a01b031633146104b05760405162461bcd60e51b81526004016104a790611095565b60405180910390fd5b600680546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6000806103e86104f360055485610b5890919063ffffffff16565b6104fd91906110e2565b6105079084611121565b9392505050565b6008546001600160a01b031633146105385760405162461bcd60e51b81526004016104a790611054565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b031633146105855760405162461bcd60e51b81526004016104a790611095565b50600780546001600160a01b0319166001600160a01b03831617905560015b919050565b6000546001600160a01b031633146105d35760405162461bcd60e51b81526004016104a790611095565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6008546000906001600160a01b0316331461064a5760405162461bcd60e51b81526004016104a790611054565b6000821161068f5760405162461bcd60e51b8152602060048201526012602482015271496e76616c69642050657263656e7461676560701b60448201526064016104a7565b50600555600190565b6008546001600160a01b031633146106c25760405162461bcd60e51b81526004016104a790611054565b6001600160a01b03919091166000908152600460205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107175760405162461bcd60e51b81526004016104a790611095565b60009182526003602052604090912055565b6007546001600160a01b031633146107535760405162461bcd60e51b81526004016104a790611054565b600081815260026020908152604080832085845290915290205460ff16156107bd5760405162461bcd60e51b815260206004820152601860248201527f5377617020697320616c72656164792070726f6365656473000000000000000060448201526064016104a7565b60008181526002602090815260408083208584528252808320805460ff191660011790556001600160a01b0387168352600490915281205460ff1615610804575082610810565b61080d846104d8565b90505b600061081c8583610bd7565b9050801561084657600654600954610846916001600160a01b036101009091048116911683610c19565b6006546108629061010090046001600160a01b03168784610c19565b505050505050565b60065460ff16156108b65760405162461bcd60e51b81526020600482015260166024820152751d1a1948189c9a5919da5b99c81a5cc81c185d5cd95960521b60448201526064016104a7565b6000818152600360205260409020543410156109145760405162461bcd60e51b815260206004820152601b60248201527f496e73756666696369656e742070726f6365737365642066656573000000000060448201526064016104a7565b60008181526001602081905260409091205490610932908290610d34565b60008381526001602052604090208190556006549091506109639061010090046001600160a01b0316333086610d93565b6007546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561099c573d6000803e3d6000fd5b506040805184815260208101839052808201849052905133917f5304d76028f8ff5ac5ed555bed4c0f4412dd20070c103e125dbf0d5e27a914e8919081900360600190a2505050565b6000546001600160a01b03163314610a0f5760405162461bcd60e51b81526004016104a790611095565b6006805460ff1916911515919091179055565b6008546001600160a01b03163314610a4c5760405162461bcd60e51b81526004016104a790611054565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b03163314610a985760405162461bcd60e51b81526004016104a790611095565b6001600160a01b038116610afd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104a7565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b600082610b6757506000610477565b6000610b738385611102565b905082610b8085836110e2565b146105075760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104a7565b600061050783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ebb565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610c759190611005565b6000604051808303816000865af19150503d8060008114610cb2576040519150601f19603f3d011682016040523d82523d6000602084013e610cb7565b606091505b5091509150818015610ce1575080511580610ce1575080806020019051810190610ce19190610fb0565b610d2d5760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016104a7565b5050505050565b600080610d4183856110ca565b9050838110156105075760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104a7565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b1790529151600092839290881691610df79190611005565b6000604051808303816000865af19150503d8060008114610e34576040519150601f19603f3d011682016040523d82523d6000602084013e610e39565b606091505b5091509150818015610e63575080511580610e63575080806020019051810190610e639190610fb0565b6108625760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b60648201526084016104a7565b60008184841115610edf5760405162461bcd60e51b81526004016104a79190611021565b506000610eec8486611121565b95945050505050565b80356001600160a01b03811681146105a457600080fd5b600060208284031215610f1d578081fd5b61050782610ef5565b60008060408385031215610f38578081fd5b610f4183610ef5565b91506020830135610f518161117e565b809150509250929050565b60008060008060808587031215610f71578182fd5b610f7a85610ef5565b966020860135965060408601359560600135945092505050565b600060208284031215610fa5578081fd5b81356105078161117e565b600060208284031215610fc1578081fd5b81516105078161117e565b600060208284031215610fdd578081fd5b5035919050565b60008060408385031215610ff6578182fd5b50508035926020909101359150565b60008251611017818460208701611138565b9190910192915050565b6020815260008251806020840152611040816040850160208701611138565b601f01601f19169190910160400192915050565b60208082526021908201527f4f776e61626c653a2063616c6c6572206973206e6f74207468652073797374656040820152606d60f81b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600082198211156110dd576110dd611168565b500190565b6000826110fd57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561111c5761111c611168565b500290565b60008282101561113357611133611168565b500390565b60005b8381101561115357818101518382015260200161113b565b83811115611162576000848401525b50505050565b634e487b7160e01b600052601160045260246000fd5b801515811461118c57600080fd5b5056fea2646970667358221220652e54f4eece1ecca5c99497770928525be8f9393d2aff149759f39b596ffc0164736f6c63430008040033