60806040526200001a68e40e772ce376d200005f19620002b3565b62000027905f19620002d3565b60029081556004556003600a819055600b819055600c55600d805461ffff60a01b1916600160a81b1790553480156200005e575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600254335f9081526005602090815260409182902092909255600780546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000118573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200013e9190620002f9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200018a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001b09190620002f9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af1158015620001fb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002219190620002f9565b600d80546001600160a01b0319166001600160a01b039283161790555f80549091168152600960209081526040808320805460ff199081166001908117909255308552828520805490911690911790555168e40e772ce376d2000081523392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000328565b5f82620002ce57634e487b7160e01b5f52601260045260245ffd5b500690565b81810381811115620002f357634e487b7160e01b5f52601160045260245ffd5b92915050565b5f602082840312156200030a575f80fd5b81516001600160a01b038116811462000321575f80fd5b9392505050565b61102780620003365f395ff3fe6080604052600436106100e7575f3560e01c806349bd5a5e1161008757806395d89b411161005757806395d89b411461028d578063a9059cbb146102bb578063dd62ed3e146102da578063f2fde38b1461031e575f80fd5b806349bd5a5e1461021f57806370a082311461023e578063715018a61461025d5780638da5cb5b14610271575f80fd5b806318160ddd116100c257806318160ddd1461019f57806323b872dd146101c4578063313ce567146101e3578063484cb525146101fe575f80fd5b806306fdde03146100f2578063095ea7b3146101395780631694505e14610168575f80fd5b366100ee57005b5f80fd5b3480156100fd575f80fd5b5060408051808201909152600d81526c2832b8329024b73b30b9b4b7b760991b60208201525b6040516101309190610df3565b60405180910390f35b348015610144575f80fd5b50610158610153366004610e59565b61033d565b6040519015158152602001610130565b348015610173575f80fd5b50600754610187906001600160a01b031681565b6040516001600160a01b039091168152602001610130565b3480156101aa575f80fd5b5068e40e772ce376d200005b604051908152602001610130565b3480156101cf575f80fd5b506101586101de366004610e81565b610353565b3480156101ee575f80fd5b5060405160058152602001610130565b348015610209575f80fd5b5061021d610218366004610eba565b6103ba565b005b34801561022a575f80fd5b50600d54610187906001600160a01b031681565b348015610249575f80fd5b506101b6610258366004610eda565b6103f7565b348015610268575f80fd5b5061021d610418565b34801561027c575f80fd5b505f546001600160a01b0316610187565b348015610298575f80fd5b506040805180820190915260068152652822a822a4a760d11b6020820152610123565b3480156102c6575f80fd5b506101586102d5366004610e59565b610489565b3480156102e5575f80fd5b506101b66102f4366004610ef3565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610329575f80fd5b5061021d610338366004610eda565b610495565b5f61034933848461057c565b5060015b92915050565b5f61035f84848461069f565b6103b084336103ab85604051806060016040528060288152602001610fca602891396001600160a01b038a165f90815260086020908152604080832033845290915290205491906108c4565b61057c565b5060019392505050565b5f546001600160a01b031633146103ec5760405162461bcd60e51b81526004016103e390610f24565b60405180910390fd5b600491909155600a55565b6001600160a01b0381165f9081526005602052604081205461034d906108fc565b5f546001600160a01b031633146104415760405162461bcd60e51b81526004016103e390610f24565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61034933848461069f565b5f546001600160a01b031633146104be5760405162461bcd60e51b81526004016103e390610f24565b6001600160a01b0381166105235760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103e3565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b0383166105de5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103e3565b6001600160a01b03821661063f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103e3565b6001600160a01b038381165f8181526008602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166107035760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103e3565b6001600160a01b0382166107655760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103e3565b5f81116107c65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103e3565b6001600160a01b0383165f9081526009602052604090205460019060ff168061080657506001600160a01b0383165f9081526009602052604090205460ff165b806108385750600d546001600160a01b038581169116148015906108385750600d546001600160a01b03848116911614155b1561084457505f6108b2565b600d546001600160a01b03858116911614801561086f57506007546001600160a01b03848116911614155b1561087b57600454600b555b600d546001600160a01b0384811691161480156108a657506007546001600160a01b03858116911614155b156108b257600a54600b555b6108be8484848461097e565b50505050565b5f81848411156108e75760405162461bcd60e51b81526004016103e39190610df3565b505f6108f38486610f6d565b95945050505050565b5f6002548211156109625760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103e3565b5f61096b6109a6565b905061097783826109c7565b9392505050565b8061098b5761098b610a08565b610996848484610a1f565b806108be576108be600c54600b55565b5f805f6109b1610b10565b90925090506109c082826109c7565b9250505090565b5f61097783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250610b51565b600b545f03610a1357565b600b8054600c555f9055565b5f805f805f80610a2e87610b7d565b6001600160a01b038f165f90815260056020526040902054959b50939950919750955093509150610a5f9087610bcf565b6001600160a01b03808b165f9081526005602052604080822093909355908a1681522054610a8d9086610c10565b6001600160a01b0389165f90815260056020526040902055610aae81610c6e565b610ab88483610cb4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051610afd91815260200190565b60405180910390a3505050505050505050565b6002545f90819068e40e772ce376d20000610b2b82826109c7565b821015610b485750506002549268e40e772ce376d2000092509050565b90939092509050565b5f8183610b715760405162461bcd60e51b81526004016103e39190610df3565b505f6108f38486610f80565b5f805f805f805f805f610b928a600b54610cd8565b9250925092505f610ba16109a6565b90505f805f610bb28e878787610d29565b919e509c509a509598509396509194505050505091939550919395565b5f61097783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506108c4565b5f80610c1c8385610f9f565b9050838110156109775760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103e3565b5f610c776109a6565b90505f610c848383610d75565b305f90815260056020526040902054909150610ca09082610c10565b305f90815260056020526040902055505050565b600254610cc19083610bcf565b600255600354610cd19082610c10565b6003555050565b5f808080610cf16064610ceb8888610d75565b906109c7565b90505f610d036064610ceb8989610d75565b90505f610d1a82610d148a86610bcf565b90610bcf565b95509193509150509250925092565b5f808080610d378886610d75565b90505f610d448887610d75565b90505f610d518888610d75565b90505f610d6282610d148686610bcf565b939b939a50919850919650505050505050565b5f825f03610d8457505f61034d565b5f610d8f8385610fb2565b905082610d9c8583610f80565b146109775760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103e3565b5f6020808352835180828501525f5b81811015610e1e57858101830151858201604001528201610e02565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610e54575f80fd5b919050565b5f8060408385031215610e6a575f80fd5b610e7383610e3e565b946020939093013593505050565b5f805f60608486031215610e93575f80fd5b610e9c84610e3e565b9250610eaa60208501610e3e565b9150604084013590509250925092565b5f8060408385031215610ecb575f80fd5b50508035926020909101359150565b5f60208284031215610eea575f80fd5b61097782610e3e565b5f8060408385031215610f04575f80fd5b610f0d83610e3e565b9150610f1b60208401610e3e565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b8181038181111561034d5761034d610f59565b5f82610f9a57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561034d5761034d610f59565b808202811582820484141761034d5761034d610f5956fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212208912082a6972bd8af20124d50681ebb945dc74337141d76655286974da97b57164736f6c63430008140033