60806040525f80555f60015534801562000017575f80fd5b50620000266012600a620001db565b62000036906305f5e100620001f2565b335f8181526002602090815260408083209490945530825260038152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000a56012600a620001db565b620000b5906305f5e100620001f2565b60405190815260200160405180910390a36200020c565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200012057815f1904821115620001045762000104620000cc565b808516156200011257918102915b93841c9390800290620000e5565b509250929050565b5f826200013857506001620001d5565b816200014657505f620001d5565b81600181146200015f57600281146200016a576200018a565b6001915050620001d5565b60ff8411156200017e576200017e620000cc565b50506001821b620001d5565b5060208310610133831016604e8410600b8410161715620001af575081810a620001d5565b620001bb8383620000e0565b805f1904821115620001d157620001d1620000cc565b0290505b92915050565b5f620001eb60ff84168362000128565b9392505050565b8082028115828204841417620001d557620001d5620000cc565b610af7806200021a5f395ff3fe60806040526004361061009d575f3560e01c8063313ce56711610062578063313ce5671461018157806370a08231146101a757806395d89b41146101d2578063a9059cbb14610202578063c9567bf914610221578063dd62ed3e14610235575f80fd5b806306fdde03146100a8578063095ea7b3146100f05780630b78f9c01461011f57806318160ddd1461014057806323b872dd14610162575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100da60405180604001604052806007815260200166467269656e647360c81b81525081565b6040516100e791906107af565b60405180910390f35b3480156100fb575f80fd5b5061010f61010a366004610815565b61026b565b60405190151581526020016100e7565b34801561012a575f80fd5b5061013e61013936600461083d565b6102d7565b005b34801561014b575f80fd5b50610154610314565b6040519081526020016100e7565b34801561016d575f80fd5b5061010f61017c36600461085d565b610331565b34801561018c575f80fd5b50610195601281565b60405160ff90911681526020016100e7565b3480156101b2575f80fd5b506101546101c1366004610896565b60026020525f908152604090205481565b3480156101dd575f80fd5b506100da604051806040016040528060058152602001646672656e7360d81b81525081565b34801561020d575f80fd5b5061010f61021c366004610815565b61037e565b34801561022c575f80fd5b5061013e610391565b348015610240575f80fd5b5061015461024f3660046108af565b600360209081525f928352604080842090915290825290205481565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102c59086815260200190565b60405180910390a35060015b92915050565b337304bcf194b361073ec96c90ca5d86d56fe92483741461030a57604051629af2b160e81b815260040160405180910390fd5b5f91909155600155565b6103206012600a6109d4565b61032e906305f5e1006109e2565b81565b6001600160a01b0383165f9081526003602090815260408083203384529091528120805483919083906103659084906109f9565b9091555061037690508484846103db565b949350505050565b5f61038a3384846103db565b9392505050565b337304bcf194b361073ec96c90ca5d86d56fe9248374146103b0575f80fd5b600454600160a81b900460ff16156103c6575f80fd5b6004805460ff60a81b1916600160a81b179055565b6004545f90600160a81b900460ff168061041157506001600160a01b0384167304bcf194b361073ec96c90ca5d86d56fe9248374145b8061043857506001600160a01b0383167304bcf194b361073ec96c90ca5d86d56fe9248374145b610440575f80fd5b600454600160a81b900460ff1615801561046357506004546001600160a01b0316155b801561046e57505f82115b1561048f57600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f90815260026020526040812080548492906104b69084906109f9565b90915550506004546001600160a01b0384811691161480156104e25750600454600160a01b900460ff16155b8015610521575060646104f76012600a6109d4565b610505906305f5e1006109e2565b61050f9190610a0c565b305f9081526002602052604090205410155b156106ab576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061056c5761056c610a2b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106105b4576105b4610a2b565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646105f46012600a6109d4565b610602906305f5e1006109e2565b61060c9190610a0c565b5f8430426040518663ffffffff1660e01b8152600401610630959493929190610a3f565b5f604051808303815f87803b158015610647575f80fd5b505af1158015610659573d5f803e3d5ffd5b50506040517304bcf194b361073ec96c90ca5d86d56fe924837492504780156108fc029250905f818181858888f1935050505015801561069b573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b038416301461072a576004545f906064906001600160a01b038781169116146106dd576001546106e0565b5f545b6106ea90856109e2565b6106f49190610a0c565b905061070081846109f9565b305f90815260026020526040812080549295508392909190610723908490610aae565b9091555050505b6001600160a01b0383165f9081526002602052604081208054849290610751908490610aae565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161079d91815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156107da578581018301518582016040015282016107be565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610810575f80fd5b919050565b5f8060408385031215610826575f80fd5b61082f836107fa565b946020939093013593505050565b5f806040838503121561084e575f80fd5b50508035926020909101359150565b5f805f6060848603121561086f575f80fd5b610878846107fa565b9250610886602085016107fa565b9150604084013590509250925092565b5f602082840312156108a6575f80fd5b61038a826107fa565b5f80604083850312156108c0575f80fd5b6108c9836107fa565b91506108d7602084016107fa565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561092e57815f1904821115610914576109146108e0565b8085161561092157918102915b93841c93908002906108f9565b509250929050565b5f82610944575060016102d1565b8161095057505f6102d1565b816001811461096657600281146109705761098c565b60019150506102d1565b60ff841115610981576109816108e0565b50506001821b6102d1565b5060208310610133831016604e8410600b84101617156109af575081810a6102d1565b6109b983836108f4565b805f19048211156109cc576109cc6108e0565b029392505050565b5f61038a60ff841683610936565b80820281158282048414176102d1576102d16108e0565b818103818111156102d1576102d16108e0565b5f82610a2657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a8d5784516001600160a01b031683529383019391830191600101610a68565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102d1576102d16108e056fea2646970667358221220556419c7027480ee38683e128e9b2bb2e37810bb484f1633cc9991a78918129464736f6c63430008140033