0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6110be8061007e6000396000f3fe60806040526004361061008a5760003560e01c8063715018a611610059578063715018a61461013057806386d8fee0146101455780638da5cb5b14610158578063afac3f9b14610180578063f2fde38b146101a057600080fd5b80631c4a200314610096578063255323ff146100ab5780632848aeaf146100cb5780634129d61a1461011057600080fd5b3661009157005b600080fd5b6100a96100a4366004610d00565b6101c0565b005b3480156100b757600080fd5b506100a96100c6366004610d6c565b6102f6565b3480156100d757600080fd5b506100fb6100e6366004610dca565b60016020526000908152604090205460ff1681565b60405190151581526020015b60405180910390f35b34801561011c57600080fd5b506100a961012b366004610dec565b610374565b34801561013c57600080fd5b506100a96105b2565b6100a9610153366004610e6d565b6105c6565b34801561016457600080fd5b506000546040516001600160a01b039091168152602001610107565b34801561018c57600080fd5b506100a961019b366004610eb9565b6106d4565b3480156101ac57600080fd5b506100a96101bb366004610dca565b610897565b3360009081526001602052604090205460ff166101f85760405162461bcd60e51b81526004016101ef90610f16565b60405180910390fd5b471580159061020657508015155b801561021157508215155b61022d5760405162461bcd60e51b81526004016101ef90610f58565b80831461024c5760405162461bcd60e51b81526004016101ef90610f76565b60005b838110156102e15784848281811061026957610269610f94565b905060200201602081019061027e9190610dca565b6001600160a01b03166108fc84848481811061029c5761029c610f94565b905060200201359081150290604051600060405180830381858888f193505050501580156102ce573d6000803e3d6000fd5b50806102d981610fc0565b91505061024f565b5047156102f0576102f0610910565b50505050565b6102fe61093c565b60005b8181101561036f57600180600085858581811061032057610320610f94565b90506020020160208101906103359190610dca565b6001600160a01b031681526020810191909152604001600020805460ff19169115159190911790558061036781610fc0565b915050610301565b505050565b3360009081526001602052604090205460ff166103a35760405162461bcd60e51b81526004016101ef90610f16565b6040516370a0823160e01b81523360048201526001600160a01b038216906370a082319060240160206040518083038186803b1580156103e257600080fd5b505afa1580156103f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061041a9190610fdb565b1580159061042757508115155b801561043257508315155b61044e5760405162461bcd60e51b81526004016101ef90610f58565b81841461046d5760405162461bcd60e51b81526004016101ef90610f76565b6000805b838110156104b15784848281811061048b5761048b610f94565b905060200201358261049d9190610ff4565b9150806104a981610fc0565b915050610471565b506104be82333084610996565b60005b8581101561052457610512838888848181106104df576104df610f94565b90506020020160208101906104f49190610dca565b87878581811061050657610506610f94565b90506020020135610abe565b8061051c81610fc0565b9150506104c1565b506040516370a0823160e01b81523060048201526001600160a01b038316906370a082319060240160206040518083038186803b15801561056457600080fd5b505afa158015610578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061059c9190610fdb565b156105aa576105aa82610bd9565b505050505050565b6105ba61093c565b6105c46000610c64565b565b3360009081526001602052604090205460ff166105f55760405162461bcd60e51b81526004016101ef90610f16565b801580159061060357508115155b61061f5760405162461bcd60e51b81526004016101ef90610f58565b610629828261100c565b4710156106485760405162461bcd60e51b81526004016101ef90610f76565b60005b828110156106c55783838281811061066557610665610f94565b905060200201602081019061067a9190610dca565b6001600160a01b03166108fc839081150290604051600060405180830381858888f193505050501580156106b2573d6000803e3d6000fd5b50806106bd81610fc0565b91505061064b565b50471561036f5761036f610910565b3360009081526001602052604090205460ff166107035760405162461bcd60e51b81526004016101ef90610f16565b6040516370a0823160e01b81523360048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a9190610fdb565b1580159061078757508115155b801561079257508215155b6107ae5760405162461bcd60e51b81526004016101ef90610f58565b6107c38133306107be878761100c565b610996565b60005b83811015610811576107ff828686848181106107e4576107e4610f94565b90506020020160208101906107f99190610dca565b85610abe565b8061080981610fc0565b9150506107c6565b506040516370a0823160e01b81523060048201526001600160a01b038216906370a082319060240160206040518083038186803b15801561085157600080fd5b505afa158015610865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108899190610fdb565b156102f0576102f081610bd9565b61089f61093c565b6001600160a01b0381166109045760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101ef565b61090d81610c64565b50565b60405133904780156108fc02916000818181858888f1935050505015801561090d573d6000803e3d6000fd5b6000546001600160a01b031633146105c45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101ef565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916109fa919061102b565b6000604051808303816000865af19150503d8060008114610a37576040519150601f19603f3d011682016040523d82523d6000602084013e610a3c565b606091505b5091509150818015610a66575080511580610a66575080806020019051810190610a669190611066565b6105aa5760405162461bcd60e51b8152602060048201526024808201527f5472616e7366657248656c7065723a205452414e534645525f46524f4d5f46416044820152631253115160e21b60648201526084016101ef565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691610b1a919061102b565b6000604051808303816000865af19150503d8060008114610b57576040519150601f19603f3d011682016040523d82523d6000602084013e610b5c565b606091505b5091509150818015610b86575080511580610b86575080806020019051810190610b869190611066565b610bd25760405162461bcd60e51b815260206004820152601f60248201527f5472616e7366657248656c7065723a205452414e534645525f4641494c45440060448201526064016101ef565b5050505050565b6040516370a0823160e01b81523060048201526000906001600160a01b038316906370a082319060240160206040518083038186803b158015610c1b57600080fd5b505afa158015610c2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c539190610fdb565b9050610c60823383610abe565b5050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60008083601f840112610cc657600080fd5b50813567ffffffffffffffff811115610cde57600080fd5b6020830191508360208260051b8501011115610cf957600080fd5b9250929050565b60008060008060408587031215610d1657600080fd5b843567ffffffffffffffff80821115610d2e57600080fd5b610d3a88838901610cb4565b90965094506020870135915080821115610d5357600080fd5b50610d6087828801610cb4565b95989497509550505050565b60008060208385031215610d7f57600080fd5b823567ffffffffffffffff811115610d9657600080fd5b610da285828601610cb4565b90969095509350505050565b80356001600160a01b0381168114610dc557600080fd5b919050565b600060208284031215610ddc57600080fd5b610de582610dae565b9392505050565b600080600080600060608688031215610e0457600080fd5b853567ffffffffffffffff80821115610e1c57600080fd5b610e2889838a01610cb4565b90975095506020880135915080821115610e4157600080fd5b50610e4e88828901610cb4565b9094509250610e61905060408701610dae565b90509295509295909350565b600080600060408486031215610e8257600080fd5b833567ffffffffffffffff811115610e9957600080fd5b610ea586828701610cb4565b909790965060209590950135949350505050565b60008060008060608587031215610ecf57600080fd5b843567ffffffffffffffff811115610ee657600080fd5b610ef287828801610cb4565b90955093505060208501359150610f0b60408601610dae565b905092959194509250565b60208082526022908201527f596f7520646f206e6f7420686176652065786563757465207065726d6973736960408201526137b760f11b606082015260800190565b6020808252600490820152636572723160e01b604082015260600190565b60208082526004908201526332b9391960e11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610fd457610fd4610faa565b5060010190565b600060208284031215610fed57600080fd5b5051919050565b6000821982111561100757611007610faa565b500190565b600081600019048311821515161561102657611026610faa565b500290565b6000825160005b8181101561104c5760208186018101518583015201611032565b8181111561105b576000828501525b509190910192915050565b60006020828403121561107857600080fd5b81518015158114610de557600080fdfea26469706673582212208483430f26e3a734b99d19b9dc2829d76dadda24bb53dbcf3a15247f56c70d4d64736f6c63430008090033