0x60806040526008805460ff60a01b1916600160a01b179055348015610022575f80fd5b506040805180820182526004815263424f4f5360e01b60208083019190915282518084019093526003835262424f4f60e81b90830152600880546001600160a01b0319163317905590600661007783826104d7565b50600761008482826104d7565b5050506100b7336100996100c460201b60201c565b6100a490600a61068c565b6100b2906305f5e1006106a1565b6100c9565b6100bf610106565b6106f1565b601290565b6001600160a01b0382166100f75760405163ec442f0560e01b81525f60048201526024015b60405180910390fd5b6101025f83836101cc565b5050565b60405163a167129560e01b8152306004820152734200000000000000000000000000000000000006602482015261271060448201527333128a8fc17869897dce68ed026d694621f6fdfd90819063a1671295906064016020604051808303815f875af1158015610178573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061019c91906106b8565b600280546001600160a01b0319166001600160a01b0392909216919091179055506008805460ff60a01b19169055565b600854600160a01b900460ff16806101f257506002546001600160a01b03848116911614155b6102335760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016100ee565b6001600160a01b03831661025d578060055f82825461025291906106de565b9091555061031c9050565b6001600160a01b0383165f9081526003602052604090205415806102a457506001600160a01b0383165f9081526003602052604090205443906102a19060026106de565b10155b6102ac575f80fd5b6001600160a01b0383165f90815260208190526040902054818110156102fe5760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016100ee565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b038216610338576005805482900390556103ed565b60045460ff16801561035857506008546001600160a01b03848116911614155b801561036c57506001600160a01b03831615155b801561039557507303a520b32c04bf3beef7beb72e919cf822ed34f16001600160a01b03831614155b80156103af57506002546001600160a01b03838116911614155b156103cf576001600160a01b0382165f9081526003602052604090204390555b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161043291815260200190565b60405180910390a3505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061046757607f821691505b60208210810361048557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156104d257805f5260205f20601f840160051c810160208510156104b05750805b601f840160051c820191505b818110156104cf575f81556001016104bc565b50505b505050565b81516001600160401b038111156104f0576104f061043f565b610504816104fe8454610453565b8461048b565b602080601f831160018114610537575f84156105205750858301515b5f19600386901b1c1916600185901b17855561058e565b5f85815260208120601f198616915b8281101561056557888601518255948401946001909101908401610546565b508582101561058257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156105e457815f19048211156105ca576105ca610596565b808516156105d757918102915b93841c93908002906105af565b509250929050565b5f826105fa57506001610686565b8161060657505f610686565b816001811461061c576002811461062657610642565b6001915050610686565b60ff84111561063757610637610596565b50506001821b610686565b5060208310610133831016604e8410600b8410161715610665575081810a610686565b61066f83836105aa565b805f190482111561068257610682610596565b0290505b92915050565b5f61069a60ff8416836105ec565b9392505050565b808202811582820484141761068657610686610596565b5f602082840312156106c8575f80fd5b81516001600160a01b038116811461069a575f80fd5b8082018082111561068657610686610596565b610a4f806106fe5f395ff3fe608060405234801561000f575f80fd5b50600436106100fb575f3560e01c806370a0823111610093578063a9059cbb11610063578063a9059cbb14610229578063bbc0c7421461023c578063c9567bf914610250578063dd62ed3e14610258575f80fd5b806370a08231146101bb5780638fe62b8a146101e357806395d89b41146101f6578063a8b08982146101fe575f80fd5b80632c0f31d9116100ce5780632c0f31d9146101655780632deff77f1461017a578063313ce567146101995780633f249381146101a8575f80fd5b806306fdde03146100ff578063095ea7b31461011d57806318160ddd1461014057806323b872dd14610152575b5f80fd5b610107610290565b604051610114919061088a565b60405180910390f35b61013061012b3660046108da565b610320565b6040519015158152602001610114565b6005545b604051908152602001610114565b610130610160366004610902565b61036a565b61017861017336600461093b565b61038d565b005b610144610188366004610961565b60036020525f908152604090205481565b60405160128152602001610114565b6101786101b6366004610961565b6103b3565b6101446101c9366004610961565b6001600160a01b03165f9081526020819052604090205490565b6101786101f136600461097a565b6103e0565b610107610410565b600254610211906001600160a01b031681565b6040516001600160a01b039091168152602001610114565b6101306102373660046108da565b61041f565b60085461013090600160a01b900460ff1681565b61017861042c565b610144610266366004610991565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b60606006805461029f906109c2565b80601f01602080910402602001604051908101604052809291908181526020018280546102cb906109c2565b80156103165780601f106102ed57610100808354040283529160200191610316565b820191905f5260205f20905b8154815290600101906020018083116102f957829003601f168201915b5050505050905090565b335f8181526003602052604081205490919015610353576001600160a01b0384165f908152600360205260409020600190555b61035e818585610456565b60019150505b92915050565b5f33610377858285610468565b6103828585856104e8565b506001949350505050565b600854336001600160a01b03909116036103b0576004805460ff19168215151790555b50565b600854336001600160a01b03909116036103b0576001600160a01b03165f90815260036020526040812055565b600854336001600160a01b03909116036103b0576008546001600160a01b03165f90815260208190526040902055565b60606007805461029f906109c2565b5f3361035e8185856104e8565b600854336001600160a01b0390911603610454576008805460ff60a01b1916600160a01b1790555b565b6104638383836001610545565b505050565b6001600160a01b038381165f908152600160209081526040808320938616835292905220545f1981146104e257818110156104d457604051637dc7a0d960e11b81526001600160a01b038416600482015260248101829052604481018390526064015b60405180910390fd5b6104e284848484035f610545565b50505050565b6001600160a01b03831661051157604051634b637e8f60e11b81525f60048201526024016104cb565b6001600160a01b03821661053a5760405163ec442f0560e01b81525f60048201526024016104cb565b610463838383610617565b6001600160a01b03841661056e5760405163e602df0560e01b81525f60048201526024016104cb565b6001600160a01b03831661059757604051634a1406b160e11b81525f60048201526024016104cb565b6001600160a01b038085165f90815260016020908152604080832093871683529290522082905580156104e257826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161060991815260200190565b60405180910390a350505050565b600854600160a01b900460ff168061063d57506002546001600160a01b03848116911614155b61067e5760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b60448201526064016104cb565b6001600160a01b0383166106a8578060055f82825461069d91906109fa565b909155506107679050565b6001600160a01b0383165f9081526003602052604090205415806106ef57506001600160a01b0383165f9081526003602052604090205443906106ec9060026109fa565b10155b6106f7575f80fd5b6001600160a01b0383165f90815260208190526040902054818110156107495760405163391434e360e21b81526001600160a01b038516600482015260248101829052604481018390526064016104cb565b6001600160a01b0384165f9081526020819052604090209082900390555b6001600160a01b03821661078357600580548290039055610838565b60045460ff1680156107a357506008546001600160a01b03848116911614155b80156107b757506001600160a01b03831615155b80156107e057507303a520b32c04bf3beef7beb72e919cf822ed34f16001600160a01b03831614155b80156107fa57506002546001600160a01b03838116911614155b1561081a576001600160a01b0382165f9081526003602052604090204390555b6001600160a01b0382165f9081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161087d91815260200190565b60405180910390a3505050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b03811681146108d5575f80fd5b919050565b5f80604083850312156108eb575f80fd5b6108f4836108bf565b946020939093013593505050565b5f805f60608486031215610914575f80fd5b61091d846108bf565b925061092b602085016108bf565b9150604084013590509250925092565b5f6020828403121561094b575f80fd5b8135801515811461095a575f80fd5b9392505050565b5f60208284031215610971575f80fd5b61095a826108bf565b5f6020828403121561098a575f80fd5b5035919050565b5f80604083850312156109a2575f80fd5b6109ab836108bf565b91506109b9602084016108bf565b90509250929050565b600181811c908216806109d657607f821691505b6020821081036109f457634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561036457634e487b7160e01b5f52601160045260245ffdfea26469706673582212209bb5baa8cbbec45276444289e94329ec047b522daf7e4aa38013a887f5d362c864736f6c63430008190033