0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610d998061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100ca5760003560e01c806393aa73d51161007c57806393aa73d5146101b5578063b559ba06146101bd578063b88da759146101c5578063e5d027a5146101d8578063e8cb9eeb146101eb578063f2fde38b146101fe578063fabec44a1461021157600080fd5b80630815511b146100cf5780634555556e146100ea5780634d3f0f12146101525780636987b07514610165578063715018a61461017857806379be55f1146101825780638da5cb5b146101ad575b600080fd5b6100d7610219565b6040519081526020015b60405180910390f35b6100fd6100f8366004610bbd565b61022d565b60408051825161ffff908116825260208085015190911690820152828201516001600160a01b03908116928201929092526060808401518316908201526080928301519091169181019190915260a0016100e1565b6100fd610160366004610bbd565b610374565b6100fd610173366004610c00565b610493565b6101806104af565b005b610195610190366004610c00565b6104ea565b6040516001600160a01b0390911681526020016100e1565b610195610504565b6100d7610513565b61019561052a565b6100fd6101d3366004610c22565b61054c565b6101956101e6366004610c22565b610564565b6100fd6101f9366004610c3b565b61057c565b61018061020c366004610c76565b6106f0565b6100fd610790565b6000610223610790565b5161ffff16919050565b610235610b73565b3361023e610504565b6001600160a01b03161461026d5760405162461bcd60e51b815260040161026490610c98565b60405180910390fd5b6001600160a01b03841661028057600080fd5b6001600160a01b03831661029357600080fd5b6001600160a01b0382166102a657600080fd5b6102ae610b73565b6001546000036102f457506040805160a081018252600080825260208201526001600160a01b038087169282019290925284821660608201529083166080820152610362565b60006102fe610790565b90506040518060a00160405280826000015161ffff1681526020018260200151600161032a9190610ce3565b61ffff168152602001876001600160a01b03168152602001866001600160a01b03168152602001856001600160a01b03168152509150505b61036b81610862565b95945050505050565b61037c610b73565b33610385610504565b6001600160a01b0316146103ab5760405162461bcd60e51b815260040161026490610c98565b6001600160a01b0384166103be57600080fd5b6001600160a01b0383166103d157600080fd5b6001600160a01b0382166103e457600080fd5b6103ec610b73565b60015460000361043257506040805160a081018252600080825260208201526001600160a01b038087169282019290925284821660608201529083166080820152610362565b600061043c610790565b90506040518060a001604052808260000151600161045a9190610ce3565b61ffff168152600060208201526001600160a01b0380891660408301528781166060830152861660809091015291505061036b81610862565b61049b610b73565b6104a5838361096f565b5090505b92915050565b336104b8610504565b6001600160a01b0316146104de5760405162461bcd60e51b815260040161026490610c98565b6104e86000610a56565b565b6000806104f7848461096f565b5060400151949350505050565b6000546001600160a01b031690565b600061051d610790565b6020015161ffff16905090565b600154600090810361053b57600080fd5b610543610790565b60400151905090565b610554610b73565b61055d82610aa6565b5092915050565b60008061057083610aa6565b50604001519392505050565b610584610b73565b61058c610b73565b6001545b80156100ca5760016105a28183610d09565b815481106105b2576105b2610d20565b600091825260208083206040805160a0810182526003909402909101805461ffff808216865262010000820416938501939093526001600160a01b03600160201b90930483169184019190915260018101548216606084015260020154166080820152925084600281111561062957610629610d36565b14801561064b5750846001600160a01b031682604001516001600160a01b0316145b15610658575090506104a9565b600184600281111561066c5761066c610d36565b14801561068e5750846001600160a01b031682606001516001600160a01b0316145b1561069b575090506104a9565b60028460028111156106af576106af610d36565b1480156106d15750846001600160a01b031682608001516001600160a01b0316145b156106de575090506104a9565b806106e881610d4c565b915050610590565b336106f9610504565b6001600160a01b03161461071f5760405162461bcd60e51b815260040161026490610c98565b6001600160a01b0381166107845760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610264565b61078d81610a56565b50565b610798610b73565b6001546107d85760405162461bcd60e51b815260206004820152600e60248201526d139bc81d995c9cda5bdb881cd95d60921b6044820152606401610264565b600180546107e7908290610d09565b815481106107f7576107f7610d20565b60009182526020918290206040805160a0810182526003909302909101805461ffff808216855262010000820416948401949094526001600160a01b03600160201b909404841691830191909152600181015483166060830152600201549091166080820152919050565b61086a610b73565b600180548082018255600091909152825160039091027fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf681018054602086015160408701516001600160a01b03908116600160201b02640100000000600160c01b031961ffff938416620100000263ffffffff199095169390971692909217929092179490941693909317905560608401517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7820180549184166001600160a01b031992831617905560808501517fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf890920180549290931691161790556104a9610790565b610977610b73565b6001546000905b80156100ca57600060016109928184610d09565b815481106109a2576109a2610d20565b60009182526020918290206040805160a0810182526003909302909101805461ffff808216808652620100008304909116958501959095526001600160a01b03600160201b90910481169284019290925260018101548216606084015260020154166080820152915086148015610a20575084816020015161ffff16145b15610a3c5780610a31600184610d09565b935093505050610a4f565b5080610a4781610d4c565b91505061097e565b9250929050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610aae610b73565b6001546000905b80156100ca5760006001610ac98184610d09565b81548110610ad957610ad9610d20565b60009182526020918290206040805160a0810182526003909302909101805461ffff808216808652620100008304909116958501959095526001600160a01b03600160201b909104811692840192909252600181015482166060840152600201541660808201529150859003610b605780610b55600184610d09565b935093505050915091565b5080610b6b81610d4c565b915050610ab5565b6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b80356001600160a01b0381168114610bb857600080fd5b919050565b600080600060608486031215610bd257600080fd5b610bdb84610ba1565b9250610be960208501610ba1565b9150610bf760408501610ba1565b90509250925092565b60008060408385031215610c1357600080fd5b50508035926020909101359150565b600060208284031215610c3457600080fd5b5035919050565b60008060408385031215610c4e57600080fd5b610c5783610ba1565b9150602083013560038110610c6b57600080fd5b809150509250929050565b600060208284031215610c8857600080fd5b610c9182610ba1565b9392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600061ffff808316818516808303821115610d0057610d00610ccd565b01949350505050565b600082821015610d1b57610d1b610ccd565b500390565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052602160045260246000fd5b600081610d5b57610d5b610ccd565b50600019019056fea264697066735822122021748afeb4c48b230e570692c653e32c49116895f5d7a500eece7029dba3173164736f6c634300080f0033