0x60806040526000805461ffff60a01b1916600160a01b17905534801561002457600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35042600155610963806100796000396000f3fe6080604052600436106100e15760003560e01c8063b38f71601161007f578063d39906be11610059578063d39906be1461035c578063d826f88f14610380578063f2fde38b14610395578063fc0c546a146103b557600080fd5b8063b38f7160146102fb578063bbc420b41461031b578063ce53b8761461033c57600080fd5b8063663a845b116100bb578063663a845b14610269578063715018a61461029f5780638da5cb5b146102b4578063a0ef91df146102e657600080fd5b806349cef723146102145780634bcdac0e14610229578063621504181461024957600080fd5b3661020f57600054600160a01b900460ff1661011e5760405162461bcd60e51b815260206004820152600060248201526044015b60405180910390fd5b60015460025460408051631015d8a960e11b815290516001600160a01b03909216916366ef0e5191839163202bb1529160048082019260209290919082900301816000875af1158015610175573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101999190610856565b6040516001600160e01b031960e084901b1681526001600160a01b0390911660048201526024016020604051808303816000875af11580156101df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610203919061087a565b1161020d57600080fd5b005b600080fd5b34801561022057600080fd5b5061020d6103d5565b34801561023557600080fd5b5061020d6102443660046108a1565b610405565b34801561025557600080fd5b5061020d6102643660046108be565b61044d565b34801561027557600080fd5b5060005461028a90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b3480156102ab57600080fd5b5061020d610582565b3480156102c057600080fd5b506000546001600160a01b03165b6040516001600160a01b039091168152602001610296565b3480156102f257600080fd5b5061028a6105f6565b34801561030757600080fd5b5061020d6103163660046108a1565b61068f565b34801561032757600080fd5b5060005461028a90600160a81b900460ff1681565b34801561034857600080fd5b5061020d6103573660046108be565b6106d7565b34801561036857600080fd5b5061037260015481565b604051908152602001610296565b34801561038c57600080fd5b5061020d610723565b3480156103a157600080fd5b5061020d6103b03660046108be565b610754565b3480156103c157600080fd5b506002546102ce906001600160a01b031681565b6000546001600160a01b031633146103ff5760405162461bcd60e51b8152600401610115906108db565b42600155565b6000546001600160a01b0316331461042f5760405162461bcd60e51b8152600401610115906108db565b60008054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b031633146104775760405162461bcd60e51b8152600401610115906108db565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156104be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104e2919061087a565b9050801561057e57816001600160a01b031663a9059cbb61050b6000546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610558573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061057c9190610910565b505b5050565b6000546001600160a01b031633146105ac5760405162461bcd60e51b8152600401610115906108db565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600080546001600160a01b031633146106215760405162461bcd60e51b8152600401610115906108db565b4760006106366000546001600160a01b031690565b6001600160a01b03168260405160006040518083038185875af1925050503d8060008114610680576040519150601f19603f3d011682016040523d82523d6000602084013e610685565b606091505b5090935050505090565b6000546001600160a01b031633146106b95760405162461bcd60e51b8152600401610115906108db565b60008054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b031633146107015760405162461bcd60e51b8152600401610115906108db565b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461074d5760405162461bcd60e51b8152600401610115906108db565b6000600155565b6000546001600160a01b0316331461077e5760405162461bcd60e51b8152600401610115906108db565b6001600160a01b0381166107e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610115565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116811461085357600080fd5b50565b60006020828403121561086857600080fd5b81516108738161083e565b9392505050565b60006020828403121561088c57600080fd5b5051919050565b801515811461085357600080fd5b6000602082840312156108b357600080fd5b813561087381610893565b6000602082840312156108d057600080fd5b81356108738161083e565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561092257600080fd5b81516108738161089356fea264697066735822122012a4478731f19846e011b99e9256fc440cc5d4e587d08ac89f30354ee3f3b2c464736f6c63430008110033