0x608060405234801561000f575f80fd5b50604051610bef380380610bef83398101604081905261002e9161014d565b338061005357604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b61005c816100fe565b50600180546001600160a01b0319166001600160a01b038316908117909155604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa1580156100b4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906100d8919061014d565b600280546001600160a01b0319166001600160a01b03929092169190911790555061017a565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6020828403121561015d575f80fd5b81516001600160a01b0381168114610173575f80fd5b9392505050565b610a68806101875f395ff3fe608060405260043610610087575f3560e01c80637ff36ab5116100575780637ff36ab5146101215780638da5cb5b14610134578063ad5c464814610150578063f14210a61461016f578063f2fde38b1461018e575f80fd5b806306b091f91461009257806318cbafe5146100b3578063715018a6146100d2578063735de9f7146100e6575f80fd5b3661008e57005b5f80fd5b34801561009d575f80fd5b506100b16100ac3660046106e2565b6101ad565b005b3480156100be575f80fd5b506100b16100cd366004610752565b610248565b3480156100dd575f80fd5b506100b16104a6565b3480156100f1575f80fd5b50600154610105906001600160a01b031681565b6040516001600160a01b03909116815260200160405180910390f35b6100b161012f3660046107bd565b6104b9565b34801561013f575f80fd5b505f546001600160a01b0316610105565b34801561015b575f80fd5b50600254610105906001600160a01b031681565b34801561017a575f80fd5b506100b161018936600461081e565b6105cd565b348015610199575f80fd5b506100b16101a8366004610835565b61060f565b6101b561064c565b816001600160a01b031663a9059cbb6101d55f546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af115801561021f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102439190610855565b505050565b61025061064c565b6002546001600160a01b03168484610269600182610874565b81811061027857610278610899565b905060200201602081019061028d9190610835565b6001600160a01b0316146102e85760405162461bcd60e51b815260206004820152601960248201527f506174682073686f756c6420656e64207769746820574554480000000000000060448201526064015b60405180910390fd5b83835f8181106102fa576102fa610899565b905060200201602081019061030f9190610835565b6040516323b872dd60e01b8152336004820152306024820152604481018890526001600160a01b0391909116906323b872dd906064016020604051808303815f875af1158015610361573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103859190610855565b5083835f81811061039857610398610899565b90506020020160208101906103ad9190610835565b60015460405163095ea7b360e01b81526001600160a01b0391821660048201526024810189905291169063095ea7b3906044016020604051808303815f875af11580156103fc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104209190610855565b506001546040516318cbafe560e01b81526001600160a01b03909116906318cbafe59061045b908990899089908990899089906004016108f2565b5f604051808303815f875af1158015610476573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261049d9190810190610943565b50505050505050565b6104ae61064c565b6104b75f610678565b565b6104c161064c565b6002546001600160a01b031684845f816104dd576104dd610899565b90506020020160208101906104f29190610835565b6001600160a01b0316146105485760405162461bcd60e51b815260206004820152601b60248201527f506174682073686f756c6420737461727420776974682057455448000000000060448201526064016102df565b600154604051637ff36ab560e01b81526001600160a01b0390911690637ff36ab590349061058290899089908990899089906004016109fc565b5f6040518083038185885af115801561059d573d5f803e3d5ffd5b50505050506040513d5f823e601f3d908101601f191682016040526105c59190810190610943565b505050505050565b6105d561064c565b5f80546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561060b573d5f803e3d5ffd5b5050565b61061761064c565b6001600160a01b03811661064057604051631e4fbdf760e01b81525f60048201526024016102df565b61064981610678565b50565b5f546001600160a01b031633146104b75760405163118cdaa760e01b81523360048201526024016102df565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b03811681146106dd575f80fd5b919050565b5f80604083850312156106f3575f80fd5b6106fc836106c7565b946020939093013593505050565b5f8083601f84011261071a575f80fd5b50813567ffffffffffffffff811115610731575f80fd5b6020830191508360208260051b850101111561074b575f80fd5b9250929050565b5f805f805f8060a08789031215610767575f80fd5b8635955060208701359450604087013567ffffffffffffffff81111561078b575f80fd5b61079789828a0161070a565b90955093506107aa9050606088016106c7565b9150608087013590509295509295509295565b5f805f805f608086880312156107d1575f80fd5b85359450602086013567ffffffffffffffff8111156107ee575f80fd5b6107fa8882890161070a565b909550935061080d9050604087016106c7565b949793965091946060013592915050565b5f6020828403121561082e575f80fd5b5035919050565b5f60208284031215610845575f80fd5b61084e826106c7565b9392505050565b5f60208284031215610865575f80fd5b8151801515811461084e575f80fd5b8181038181111561089357634e487b7160e01b5f52601160045260245ffd5b92915050565b634e487b7160e01b5f52603260045260245ffd5b8183525f60208085019450825f5b858110156108e7576001600160a01b036108d4836106c7565b16875295820195908201906001016108bb565b509495945050505050565b86815285602082015260a060408201525f61091160a0830186886108ad565b6001600160a01b039490941660608301525060800152949350505050565b634e487b7160e01b5f52604160045260245ffd5b5f6020808385031215610954575f80fd5b825167ffffffffffffffff8082111561096b575f80fd5b818501915085601f83011261097e575f80fd5b8151818111156109905761099061092f565b8060051b604051601f19603f830116810181811085821117156109b5576109b561092f565b6040529182528482019250838101850191888311156109d2575f80fd5b938501935b828510156109f0578451845293850193928501926109d7565b98975050505050505050565b858152608060208201525f610a156080830186886108ad565b6001600160a01b039490941660408301525060600152939250505056fea26469706673582212207175b9076a7e39e8b12ae5883ee47d91221da612f9be6ab16612d343b7d9cc3064736f6c634300081400330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d