@layerzerolabs/oapp-evm
Version:
LayerZero Labs reference EVM OmniChain Application (OApp) implementation
1 lines • 1 MB
JSON
{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"DEFAULT_CHANNEL_ID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"EVM_COMPUTE_MAP_BPS","inputs":[],"outputs":[{"name":"","type":"uint16","internalType":"uint16"}],"stateMutability":"view"},{"type":"function","name":"EVM_COMPUTE_REDUCE_FEE_USD","inputs":[],"outputs":[{"name":"","type":"uint120","internalType":"uint120"}],"stateMutability":"view"},{"type":"function","name":"EVM_REQUEST_FEE_USD","inputs":[],"outputs":[{"name":"","type":"uint120","internalType":"uint120"}],"stateMutability":"view"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"MAP_REDUCE_COMPUTE_TYPES","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE_TOKEN_PRICE_USD","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"TREASURY_GAS_FOR_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"assertGuid","inputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"},{"name":"guid","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"createEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"},{"name":"nativeTokenAddresses","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decodeLzComposeOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"index","type":"uint16","internalType":"uint16"},{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReadOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"size","type":"uint32","internalType":"uint32"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeLzReceiveOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"gas","type":"uint128","internalType":"uint128"},{"name":"value","type":"uint128","internalType":"uint128"}],"stateMutability":"pure"},{"type":"function","name":"decodeNativeDropOption","inputs":[{"name":"_option","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"amount","type":"uint128","internalType":"uint128"},{"name":"receiver","type":"bytes32","internalType":"bytes32"}],"stateMutability":"pure"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"executorValueCap","inputs":[],"outputs":[{"name":"","type":"uint128","internalType":"uint128"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getNextInflightPacket","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"packetBytes","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"hasPendingPackets","inputs":[{"name":"_dstEid","type":"uint16","internalType":"uint16"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"flag","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"lzCompose","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_from","type":"address","internalType":"address"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_to","type":"address","internalType":"address"},{"name":"_composerMsg","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzCompose","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_guid","type":"bytes32","internalType":"bytes32"},{"name":"_composer","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReadReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_resolvedPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"lzReceive","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"nextExecutorOption","inputs":[{"name":"_options","type":"bytes","internalType":"bytes"},{"name":"_cursor","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"optionType","type":"uint8","internalType":"uint8"},{"name":"option","type":"bytes","internalType":"bytes"},{"name":"cursor","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"registerEndpoint","inputs":[{"name":"endpoint","type":"address","internalType":"contract EndpointV2Mock"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"schedulePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_options","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setExecutorValueCap","inputs":[{"name":"_valueCap","type":"uint128","internalType":"uint128"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUpEndpoints","inputs":[{"name":"_endpointNum","type":"uint8","internalType":"uint8"},{"name":"_libraryType","type":"uint8","internalType":"enum TestHelperOz5.LibraryType"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setupOApps","inputs":[{"name":"_oappCreationCode","type":"bytes","internalType":"bytes"},{"name":"_startEid","type":"uint8","internalType":"uint8"},{"name":"_oappNum","type":"uint8","internalType":"uint8"}],"outputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_OAppSend","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_Send","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_constructor","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"validatePacket","inputs":[{"name":"_packetBytes","type":"bytes","internalType":"bytes"},{"name":"_resolvedPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"},{"name":"_packetAmount","type":"uint256","internalType":"uint256"},{"name":"_composer","type":"address","internalType":"address"},{"name":"_resolvedPayload","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"verifyPackets","inputs":[{"name":"_dstEid","type":"uint32","internalType":"uint32"},{"name":"_dstAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"wireReadOApps","inputs":[{"name":"oapps","type":"address[]","internalType":"address[]"},{"name":"channels","type":"uint32[]","internalType":"uint32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"Executor_InvalidLzComposeOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReadOption","inputs":[]},{"type":"error","name":"Executor_InvalidLzReceiveOption","inputs":[]},{"type":"error","name":"Executor_InvalidNativeDropOption","inputs":[]},{"type":"error","name":"InvalidOptionType","inputs":[{"name":"optionType","type":"uint16","internalType":"uint16"}]},{"type":"error","name":"QueueEmpty","inputs":[]},{"type":"error","name":"QueueFull","inputs":[]},{"type":"error","name":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60806040819052600c8054600160ff199182168117909255601f805490911690911790556200002e9062000247565b604051809103905ff08015801562000048573d5f803e3d5ffd5b50601f80546001600160a01b039290921661010002610100600160a81b0319909216919091179055602480546001600160801b03191667016345785d8a00001790556033805463ffffffff19166001179055604051620000a89062000255565b6040808252600e908201526d4e6174697665546f6b656e735f4160901b6060820152608060208201819052600590820152644e41545f4160d81b60a082015260c001604051809103905ff08015801562000104573d5f803e3d5ffd5b5060338054600160201b600160e01b0319166401000000006001600160a01b03939093169290920263ffffffff60c01b191691909117600160c11b179055604051620001509062000255565b6040808252600e908201526d2730ba34bb32aa37b5b2b739afa160911b6060820152608060208201819052600590820152642720aa2fa160d91b60a082015260c001604051809103905ff080158015620001ac573d5f803e3d5ffd5b50603480546001600160a01b039283166001600160a01b0319918216179091556037805482166001179055603880548216600217905560398054909116600317905568056bc75e2d63100000603a5560365416603b5560408051808201909152600b81526a12195b1b1bc81ddbdc9b1960aa1b6020820152603c9062000233908262000301565b5034801562000240575f80fd5b50620003cd565b6107c7806202e61783390190565b610a43806202edde83390190565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200028c57607f821691505b602082108103620002ab57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002fc57805f5260205f20601f840160051c81016020851015620002d85750805b601f840160051c820191505b81811015620002f9575f8155600101620002e4565b50505b505050565b81516001600160401b038111156200031d576200031d62000263565b62000335816200032e845462000277565b84620002b1565b602080601f8311600181146200036b575f8415620003535750858301515b5f19600386901b1c1916600185901b178555620003c5565b5f85815260208120601f198616915b828110156200039b578886015182559484019460019091019084016200037a565b5085821015620003b957878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6202e23b80620003dc5f395ff3fe608060405260043610620002e2575f3560e01c80637982cf42116200018e578063b752b72a11620000ea578063defd9da6116200009e578063ec53eaa01162000076578063ec53eaa01462000974578063f93e1d61146200098b578063fa7626d414620009d0578063faed6c5814620009eb575f80fd5b8063defd9da61462000906578063e20c9f711462000946578063e99b6b31146200095d575f80fd5b8063b752b72a1462000833578063b76bada51462000857578063b954fdf6146200086d578063ba414fa614620008b1578063baead19c14620008c8578063d6d6249714620008e2575f80fd5b8063997cff1b1162000142578063997cff1b146200077f578063a29c898414620007a3578063ae6ce40014620007ba578063b0464fdc14620007de578063b1dcf5c814620007f5578063b5508aa9146200081c575f80fd5b80637982cf42146200068857806382411c771462000388578063834bd15914620006bb57806385226c8114620006df578063916a17c614620007055780639751ca86146200072b575f80fd5b80633e5e3c23116200023e57806360a0bdea11620001f257806360a0bdea14620005af57806365449eb014620005c657806366d9a9a014620005ea578063699cbade14620006105780636e1775e3146200062e578063703ca2541462000664575f80fd5b80633e5e3c2314620004ab5780633f7286f414620004c2578063518e8ab014620004d957806351aa318b14620005285780635ea0fefe146200055657806360197889146200058b575f80fd5b80631cc4652511620002965780631cc4652514620003c65780631ed7831c14620003ea5780632113ce6214620004105780632a35d250146200044a5780632ade3880146200046e5780633bbd6a941462000494575f80fd5b806302244c7514620002ee578063090852b614620003075780630a69faa9146200032b5780630a9254e414620003425780630afba86814620003595780631766f5a41462000388575f80fd5b36620002ea57005b5f80fd5b348015620002fa575f80fd5b506200030562000a0f565b005b34801562000313575f80fd5b50620003056200032536600462006e44565b62000df2565b620003056200033c36600462006fb3565b62000e1e565b3480156200034e575f80fd5b506200030562000f53565b34801562000365575f80fd5b506200037061271081565b60405161ffff90911681526020015b60405180910390f35b34801562000394575f80fd5b50620003a5670de0b6b3a764000081565b6040516effffffffffffffffffffffffffffff90911681526020016200037f565b348015620003d2575f80fd5b5062000305620003e436600462007067565b6200133a565b348015620003f6575f80fd5b50620004016200138f565b6040516200037f9190620070db565b3480156200041c575f80fd5b5060245462000431906001600160801b031681565b6040516001600160801b0390911681526020016200037f565b34801562000456575f80fd5b506200040162000468366004620070ef565b620013f1565b3480156200047a575f80fd5b5062000485620014fa565b6040516200037f919062007203565b62000305620004a536600462007284565b62001642565b348015620004b7575f80fd5b5062000401620016fd565b348015620004ce575f80fd5b50620004016200175d565b348015620004e5575f80fd5b50620004fd620004f736600462007337565b620017bd565b6040805161ffff90941684526001600160801b0392831660208501529116908201526060016200037f565b34801562000534575f80fd5b50620005406201117181565b60405163ffffffff90911681526020016200037f565b34801562000562575f80fd5b506200057a6200057436600462007389565b620017d9565b60405190151581526020016200037f565b34801562000597575f80fd5b5062000305620005a9366004620073b6565b6200180b565b348015620005bb575f80fd5b5062000305620023c9565b348015620005d2575f80fd5b5062000305620005e4366004620074be565b620025f5565b348015620005f6575f80fd5b5062000601620026ce565b6040516200037f9190620075c4565b3480156200061c575f80fd5b506200043168056bc75e2d6310000081565b3480156200063a575f80fd5b50620006526200064c36600462007641565b6200283e565b6040516200037f9493929190620076b4565b34801562000670575f80fd5b506200030562000682366004620076e3565b62002860565b34801562000694575f80fd5b50620006ac620006a636600462007389565b62002a19565b6040516200037f919062007720565b348015620006c7575f80fd5b5062000305620006d936600462007734565b62002b00565b348015620006eb575f80fd5b50620006f662003003565b6040516200037f9190620077ac565b34801562000711575f80fd5b506200071c620030d8565b6040516200037f9190620077c0565b34801562000737575f80fd5b506200074f6200074936600462007337565b620031bd565b604080516001600160801b03948516815263ffffffff90931660208401529216918101919091526060016200037f565b3480156200078b575f80fd5b50620003056200079d36600462007641565b620031cc565b62000305620007b436600462007833565b6200321d565b348015620007c6575f80fd5b5062000305620007d8366004620078bd565b620032a4565b348015620007ea575f80fd5b506200071c62003341565b34801562000801575f80fd5b506200080d620186a081565b6040519081526020016200037f565b34801562000828575f80fd5b50620006f662003426565b3480156200083f575f80fd5b506200030562000851366004620078db565b620034fb565b34801562000863575f80fd5b506200080d600381565b34801562000879575f80fd5b50620008916200088b36600462007337565b62003518565b604080516001600160801b0390931683526020830191909152016200037f565b348015620008bd575f80fd5b506200057a62003532565b348015620008d4575f80fd5b506200080d64e8d4a5100081565b348015620008ee575f80fd5b506200030562000900366004620078fa565b620035d6565b34801562000912575f80fd5b50620003056200092436600462007968565b602480546001600160801b0319166001600160801b0392909216919091179055565b34801562000952575f80fd5b5062000401620054c8565b34801562000969575f80fd5b506200030562005528565b6200030562000985366004620073b6565b62005722565b34801562000997575f80fd5b50620009af620009a936600462007337565b62005854565b604080516001600160801b039384168152929091166020830152016200037f565b348015620009dc575f80fd5b50601f546200057a9060ff1681565b348015620009f7575f80fd5b506200030562000a0936600462007986565b62005862565b6037546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562000a66575f80fd5b505af115801562000a79573d5f803e3d5ffd5b505050505f6040518060a00160405280603360189054906101000a900463ffffffff1663ffffffff168152602001603b548152602001603c60405160200162000ac3919062007aae565b6040516020818303038152906040528152602001603e805462000ae690620079f3565b80601f016020809104026020016040519081016040528092919081815260200182805462000b1490620079f3565b801562000b635780601f1062000b395761010080835404028352916020019162000b63565b820191905f5260205f20905b81548152906001019060200180831162000b4557829003601f168201915b50505091835250505f602091820181905260355460408051635e280f1160e01b8152905194955091936001600160a01b0390911692635e280f1192600480820193918290030181865afa15801562000bbd573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000be3919062007ac2565b6001600160a01b031663ddc28c5883306040518363ffffffff1660e01b815260040162000c1292919062007ae0565b6040805180830381865afa15801562000c2d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000c53919062007bac565b5190505f62000c6482600262007bdd565b90505f60355f9054906101000a90046001600160a01b03166001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000cb8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000cde919062007ac2565b6039546040516302637a4560e41b81526001600160a01b0392831692632637a45092869262000d14928a92169060040162007ae0565b60806040518083038185885af115801562000d31573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019062000d58919062007c0e565b905062000d6d81604001515f015184620058ed565b62000d818160400151602001515f620058ed565b603d5462000d9a906001600160a01b0316315f620058ed565b60395462000db3906001600160a01b03163184620058ed565b62000dec60256002015f8154811062000dd05762000dd062007c79565b5f918252602090912001546001600160a01b03163184620058ed565b50505050565b62000e1a82826001600160a01b03165f1b5f8060405180602001604052805f81525062002b00565b5050565b5f60235f62000e2e87876200595a565b63ffffffff16815260208101919091526040015f908120546001600160a01b031691508062000e5d8562005980565b92505091505f604051806060016040528062000e7a8a8a62005a6a565b63ffffffff16815260200162000e918a8a62005a7b565b815260200162000ea28a8a62005a97565b6001600160401b0316905290506001600160a01b038416630c0c389e6001600160801b038581169085168462000ed98d8d62005abd565b62000ee58e8e62005ad1565b604080516020810182525f815290516001600160e01b031960e089901b16815262000f18949392918e9160040162007c8d565b5f604051808303818589803b15801562000f30575f80fd5b5088f115801562000f43573d5f803e3d5ffd5b5050505050505050505050505050565b60375460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000fb9575f80fd5b505af115801562000fcc573d5f803e3d5ffd5b505060385460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d91506044015f604051808303815f87803b15801562001036575f80fd5b505af115801562001049573d5f803e3d5ffd5b505050506200105762005ae2565b6200106460025f6200133a565b620010d3604051806020016200107a9062006afc565b601f1982820381018352601f90910116604081815260335463ffffffff165f9081526023602090815290829020546001600160a01b03169083015230908201526060015b60405160208183030381529060405262005aec565b603580546001600160a01b0319166001600160a01b03929092169190911790556040516200115a90620011096020820162006afc565b818103601f199081018352601f909101166040818152603354600160c01b900463ffffffff165f9081526023602090815290829020546001600160a01b0316908301523090820152606001620010be565b603680546001600160a01b0319166001600160a01b03929092169190911790556040805160028082526060820183525f92602083019080368337505060355482519293506001600160a01b0316918391505f90620011bc57620011bc62007c79565b6001600160a01b039283166020918202929092010152603654825191169082906001908110620011f057620011f062007c79565b6001600160a01b0390921660209283029190910190910152604051631c0f289560e21b8152309063703ca254906200122d908490600401620070db565b5f604051808303815f87803b15801562001245575f80fd5b505af115801562001258573d5f803e3d5ffd5b5050505060355f9054906101000a90046001600160a01b03166001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620012ad573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620012d3919062007ac2565b603d80546001600160a01b0319166001600160a01b03929092169190911790556200132b62030d405f6200132360408051600360f01b602082015281516002818303018152602290910190915290565b919062005b48565b603e9062000e1a908262007d4e565b62000e1a82828460ff166001600160401b038111156200135e576200135e62006ec0565b60405190808252806020026020018201604052801562001388578160200160208202803683370190505b50620035d6565b60606016805480602002602001604051908101604052809291908181526020018280548015620013e757602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620013c8575b5050505050905090565b60608160ff166001600160401b0381111562001411576200141162006ec0565b6040519080825280602002602001820160405280156200143b578160200160208202803683370190505b509050825b6200144c838562007e16565b60ff168160ff161015620014e75760ff81165f9081526023602090815260408083205481516001600160a01b03909116928101929092523090820152600160608201526200149f908790608001620010be565b90508083620014af878562007e32565b60ff1681518110620014c557620014c562007c79565b6001600160a01b03909216602092830291909101909101525060010162001440565b50620014f38162002860565b9392505050565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101562001639575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562001621578382905f5260205f200180546200158f90620079f3565b80601f0160208091040260200160405190810160405280929190818152602001828054620015bd90620079f3565b80156200160c5780601f10620015e2576101008083540402835291602001916200160c565b820191905f5260205f20905b815481529060010190602001808311620015ee57829003601f168201915b5050505050815260200190600101906200156f565b5050505081525050815260200190600101906200151d565b50505050905090565b63ffffffff87165f908152602360205260408120546001600160a01b03169080806200166e8962005bb7565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d60405180602001604052805f8152506040518a63ffffffff1660e01b8152600401620016bf979695949392919062007e4e565b5f604051808303818589803b158015620016d7575f80fd5b5088f1158015620016ea573d5f803e3d5ffd5b5050505050505050505050505050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015620013e757602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620013c8575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015620013e757602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620013c8575050505050905090565b5f805f620017cc858562005caf565b9250925092509250925092565b61ffff82165f90815260208080526040808320848452909152812081620018008262005d2a565b119150505b92915050565b5f6200181884846200595a565b63ffffffff81165f908152602360205260408120549192506001600160a01b03909116908163402f84686200184e888862005abd565b6200185a898962005a6a565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa158015620018a7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018cd919062007ebc565b5090505f620018dd878762005d48565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506040805163054fd4d560e41b8152905195965090946001600160a01b03881694506354fd4d509350600480830193506060928290030181865afa15801562001956573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200197c919062007efe565b50509050806001600160401b031660030362001e3557825f6001600160a01b038216639c33abf7620019af8c8c62005a6a565b620019bb8d8d62005abd565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b03166024820152600260448201526064015f60405180830381865afa15801562001a10573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001a39919081019062007f8a565b90505f8180602001905181019062001a5291906200802d565b608001515f8151811062001a6a5762001a6a62007c79565b602002602001015190505f62001a818c8c62005d59565b60405162001a919291906200810e565b6040518091039020905060605f630223536e60e01b8884606460405160240162001abe939291906200811d565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03851663f010cb238d898562001b13426103e86200814a565b6040518563ffffffff1660e01b815260040162001b34949392919062008160565b602060405180830381865afa15801562001b50573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001b769190620081a2565b905062001b838162005d6a565b6040805160018082528183019092529194505f9250816020015b62001ba762006b0a565b81526020019060019003908162001b9d5790505090506040518060a001604052808d63ffffffff168152602001886001600160a01b03168152602001838152602001426103e862001bf991906200814a565b815260200184815250815f8151811062001c175762001c1762007c79565b602090810291909101015260405163b143044b60e01b81526001600160a01b0386169063b143044b9062001c50908490600401620081ba565b5f604051808303815f87803b15801562001c68575f80fd5b505af115801562001c7b573d5f803e3d5ffd5b505050505f630894edf160e01b8a8660405160240162001c9d9291906200826a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03871663f010cb238f8b8562001cf2426103e86200814a565b6040518563ffffffff1660e01b815260040162001d13949392919062008160565b602060405180830381865afa15801562001d2f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001d559190620081a2565b905062001d628162005d6a565b9450506040518060a001604052808e63ffffffff168152602001896001600160a01b03168152602001828152602001426103e862001da191906200814a565b815260200185815250825f8151811062001dbf5762001dbf62007c79565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b9062001df8908590600401620081ba565b5f604051808303815f87803b15801562001e10575f80fd5b505af115801562001e23573d5f803e3d5ffd5b505050505050505050505050620023bf565b806001600160401b0316600a036200235f57825f6001600160a01b038216639c33abf762001e648c8c62005a6a565b62001e708d8d62005abd565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b03166024820152600160448201526064015f60405180830381865afa15801562001ec5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001eee919081019062007f8a565b90505f8180602001905181019062001f0791906200828d565b608001515f8151811062001f1f5762001f1f62007c79565b602002602001015190505f62001f368c8c62005e80565b60405162001f469291906200810e565b604051809103902090505f62001f5d8d8d62005ad1565b8b60405160200162001f71929190620082de565b60405160208183030381529060405280519060200120905060605f63ab750e7560e01b89858560405160240162001fab9392919062008305565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03861663f010cb238e8a8562002000426103e86200814a565b6040518563ffffffff1660e01b815260040162002021949392919062008160565b602060405180830381865afa1580156200203d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620020639190620081a2565b9050620020708162005d6a565b6040805160018082528183019092529194505f9190816020015b6200209462006b0a565b8152602001906001900390816200208a5790505090506040518060a001604052808f63ffffffff1681526020018a6001600160a01b03168152602001848152602001426103e8620020e691906200814a565b815260200185815250815f8151811062002104576200210462007c79565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b906200213d908490600401620081ba565b5f604051808303815f87803b15801562002155575f80fd5b505af115801562002168573d5f803e3d5ffd5b505050505050505f63594924da60e01b8985856040516024016200218f9392919062008305565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03861663f010cb238e8a85620021e4426103e86200814a565b6040518563ffffffff1660e01b815260040162002205949392919062008160565b602060405180830381865afa15801562002221573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620022479190620081a2565b9050620022548162005d6a565b6040805160018082528183019092529194505f9190816020015b6200227862006b0a565b8152602001906001900390816200226e5790505090506040518060a001604052808f63ffffffff1681526020018a6001600160a01b03168152602001848152602001426103e8620022ca91906200814a565b815260200185815250815f81518110620022e857620022e862007c79565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b9062002321908490600401620081ba565b5f604051808303815f87803b15801562002339575f80fd5b505af11580156200234c573d5f803e3d5ffd5b50505050505050505050505050620023bf565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f906200238f908b908b906004016200832b565b5f604051808303815f87803b158015620023a7575f80fd5b505af1158015620023ba573d5f803e3d5ffd5b505050505b5050505050505050565b6037546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562002420575f80fd5b505af115801562002433573d5f803e3d5ffd5b505060355460335460405163f77e5dd360e01b81525f94506001600160a01b03909216925063f77e5dd3916200248291600160c01b900463ffffffff1690603c90603e90879060040162008340565b6040805180830381865afa1580156200249d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620024c3919062007bac565b5190505f620024d482600262007bdd565b60355460335460405163b4ab5dd160e01b81529293505f926001600160a01b039092169163b4ab5dd19185916200252491600160c01b900463ffffffff1690603c90603e90859060040162008388565b60806040518083038185885af115801562002541573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019062002568919062007c0e565b6033546036549192506200259491600160c01b90910463ffffffff16906001600160a01b0316620034fb565b604081015151620025a69084620058ed565b620025ba8160400151602001515f620058ed565b603d54620025d3906001600160a01b0316315f620058ed565b620025f060256002015f8154811062000dd05762000dd062007c79565b505050565b5f5b8251811015620025f0575f83828151811062002617576200261762007c79565b602002602001015190505f5b8351811015620026c357816001600160a01b031663f0a9e48185838151811062002651576200265162007c79565b60209081029190910101516040516001600160e01b031960e084901b16815263ffffffff9091166004820152600160248201526044015f604051808303815f87803b1580156200269f575f80fd5b505af1158015620026b2573d5f803e3d5ffd5b505060019092019150620026239050565b5050600101620025f7565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562001639578382905f5260205f2090600202016040518060400160405290815f820180546200272490620079f3565b80601f01602080910402602001604051908101604052809291908181526020018280546200275290620079f3565b8015620027a15780601f106200277757610100808354040283529160200191620027a1565b820191905f5260205f20905b8154815290600101906020018083116200278357829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200282557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620027e65790505b50505050508152505081526020019060010190620026f1565b5f365f806200284f87878762005e91565b935093509350935093509350935093565b80515f5b81811015620025f0575f83828151811062002883576200288362007c79565b602002602001015190505f5b8381101562002a0e5782811462002a05575f858281518110620028b657620028b662007c79565b602002602001015190505f816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028fe573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002924919062007ac2565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002960573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620029869190620083ce565b9050836001600160a01b0316633400288b82620029a9856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff92909216600483015260248201526044015f604051808303815f87803b158015620029eb575f80fd5b505af1158015620029fe573d5f803e3d5ffd5b5050505050505b6001016200288f565b505060010162002864565b61ffff82165f90815260208080526040808320848452909152812060609162002a428262005d2a565b111562002af9575f62002a558262005eec565b5f81815260216020526040902080549192509062002a7390620079f3565b80601f016020809104026020016040519081016040528092919081815260200182805462002aa190620079f3565b801562002af05780601f1062002ac65761010080835404028352916020019162002af0565b820191905f5260205f20905b81548152906001019060200180831162002ad257829003601f168201915b50505050509250505b5092915050565b63ffffffff85165f908152602360205260409020546001600160a01b031662002b705760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f74207965742072656769737465726564000000000060448201526064015b60405180910390fd5b63ffffffff85165f9081526020808052604080832087845290915281209062002b998262005d2a565b90505f855f0362002bb75762002baf8362005d2a565b905062002bcb565b85821162002bc6578162002bc8565b855b90505b8015620023bf578062002bde81620083ec565b9150505f62002bed8462005f57565b5f8181526021602052604081208054929350909162002c0c90620079f3565b80601f016020809104026020016040519081016040528092919081815260200182805462002c3a90620079f3565b801562002c895780601f1062002c5f5761010080835404028352916020019162002c89565b820191905f5260205f20905b81548152906001019060200180831162002c6b57829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b935062002cb8925085915086906004016200826a565b5f6040518083038186803b15801562002ccf575f80fd5b505afa15801562002ce2573d5f803e3d5ffd5b5050604051636019788960e01b81523092506360197889915062002d0d9084908a9060040162008404565b5f604051808303815f87803b15801562002d25575f80fd5b505af115801562002d38573d5f803e3d5ffd5b5050505f83815260226020526040812080549192509062002d5990620079f3565b80601f016020809104026020016040519081016040528092919081815260200182805462002d8790620079f3565b801562002dd65780601f1062002dac5761010080835404028352916020019162002dd6565b820191905f5260205f20905b81548152906001019060200180831162002db857829003601f168201915b5050505050905062002dea81600262005fc5565b1562002ea2575f8062002dfd8362005fda565b604051919350915081905f906001600160a01b0383169085908381818185875af1925050503d805f811462002e4e576040519150601f19603f3d011682016040523d82523d5f602084013e62002e53565b606091505b505090508062002e9d5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002b67565b505050505b62002eaf81600162005fc5565b1562002f0c576040516307629f5560e51b8152309063ec53eaa09062002edc908590859060040162008404565b5f604051808303815f87803b15801562002ef4575f80fd5b505af115801562002f07573d5f803e3d5ffd5b505050505b62002f1981600562005fc5565b1562002f7857604051630a69faa960e01b81523090630a69faa99062002f4890859085908c906004016200842c565b5f604051808303815f87803b15801562002f60575f80fd5b505af115801562002f73573d5f803e3d5ffd5b505050505b6001600160a01b0388161580159062002f99575062002f9981600362005fc5565b1562002ffa576040516328a7226160e21b8152309063a29c89849062002fca908590859088908e906004016200846a565b5f604051808303815f87803b15801562002fe2575f80fd5b505af115801562002ff5573d5f803e3d5ffd5b505050505b50505062002bcb565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562001639578382905f5260205f200180546200304690620079f3565b80601f01602080910402602001604051908101604052809291908181526020018280546200307490620079f3565b8015620030c35780601f106200309957610100808354040283529160200191620030c3565b820191905f5260205f20905b815481529060010190602001808311620030a557829003601f168201915b50505050508152602001906001019062003026565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562001639575f8481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015620031a457602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620031655790505b50505050508152505081526020019060010190620030fb565b5f805f620017cc8585620060cd565b5f620031d9848462005ad1565b905081811462000dec5760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002b67565b30633bbd6a946200322f87876200595a565b6200323b888862005abd565b8686866200324a8c8c62005e80565b6040518863ffffffff1660e01b81526004016200326e9796959493929190620084b4565b5f604051808303815f87803b15801562003286575f80fd5b505af115801562003299573d5f803e3d5ffd5b505050505050505050565b8060235f836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620032e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200330b9190620083ce565b63ffffffff16815260208101919091526040015f2080546001600160a01b0319166001600160a01b039290921691909117905550565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562001639575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200340d57602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620033ce5790505b5050505050815250508152602001906001019062003364565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562001639578382905f5260205f200180546200346990620079f3565b80601f01602080910402602001604051908101604052809291908181526020018280546200349790620079f3565b8015620034e65780601f10620034bc57610100808354040283529160200191620034e6565b820191905f5260205f20905b815481529060010190602001808311620034c857829003601f168201915b50505050508152602001906001019062003449565b62000e1a82825f8060405180602001604052805f81525062002b00565b5f806200352684846200613f565b915091505b9250929050565b6008545f9060ff16156200354a575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b60248301525f9163667f9d7090604401602060405180830381865afa158015620035a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620035cf9190620081a2565b1415905090565b8260ff166001600160401b03811115620035f457620035f462006ec0565b6040519080825280602002602001820160405280156200361e578160200160208202803683370190505b508051620036359160259160209091019062006b45565b508260ff166001600160401b0381111562003654576200365462006ec0565b6040519080825280602002602001820160405280156200367e578160200160208202803683370190505b508051620036959160269160209091019062006ba9565b508260ff166001600160401b03811115620036b457620036b462006ec0565b604051908082528060200260200182016040528015620036de578160200160208202803683370190505b508051620036f59160279160209091019062006b45565b508260ff166001600160401b0381111562003714576200371462006ec0565b6040519080825280602002602001820160405280156200373e578160200160208202803683370190505b508051620037559160289160209091019062006b45565b508260ff166001600160401b0381111562003774576200377462006ec0565b6040519080825280602002602001820160405280156200379e578160200160208202803683370190505b508051620037b59160299160209091019062006b45565b50604080516001808252818301909252906020808301908036833750508151620037e792602a92506020019062006b45565b506040516001625e79b760e01b0319815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200383a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003860919062007ac2565b602a80545f9062003875576200387562007c79565b5f918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091555b8360ff168160ff16101562003ab5575f620038bb82600162007e16565b60ff1690505f838360ff1681518110620038d957620038d962007c79565b602002602001015190508160256001018460ff168154811062003900576200390062007c79565b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055505f6001600160a01b0316816001600160a01b031603620039dc5781306040516200395b9062006c57565b63ffffffff90921682526001600160a01b03166020820152604001604051809103905ff08015801562003990573d5f803e3d5ffd5b506025805460ff8616908110620039ab57620039ab62007c79565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555062003a71565b813082604051620039ed9062006c65565b63ffffffff90931683526001600160a01b039182166020840152166040820152606001604051809103905ff08015801562003a2a573d5f803e3d5ffd5b506025805460ff861690811062003a455762003a4562007c79565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505b62003aaa60255f018460ff168154811062003a905762003a9062007c79565b5f918252602090912001546001600160a01b0316620032a4565b50506001016200389e565b503060405162003ac59062006c73565b6001600160a01b039091168152602001604051809103905ff08015801562003aef573d5f803e3d5ffd5b50602b80546001600160a01b0319166001600160a01b03929092169190911790555f5b8360ff168160ff161015620051b6575f83600181111562003b375762003b3762008515565b0362004fc4575f60255f018260ff168154811062003b595762003b5962007c79565b905f5260205f20015f9054906101000a90046001600160a01b03169050308164e8d4a51000620186a060405162003b909062006c81565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103905ff08015801562003bcd573d5f803e3d5ffd5b50602c80546001600160a01b0319166001600160a01b0392909216919091179055604051819062003bfe9062006c8f565b6001600160a01b039091168152602001604051809103905ff08015801562003c28573d5f803e3d5ffd5b50602c6001015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550308164e8d4a51000620186a060405162003c6b9062006c9d565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103905ff08015801562003ca8573d5f803e3d5ffd5b50602e80546001600160a01b0319166001600160a01b03929092169190911790556025805460ff841690811062003ce35762003ce362007c79565b5f91825260209091200154602c5460405163e8964e8160e01b81526001600160a01b03918216600482015291169063e8964e81906024015f604051808303815f87803b15801562003d32575f80fd5b505af115801562003d45573d5f803e3d5ffd5b5050505060255f018260ff168154811062003d645762003d6462007c79565b5f91825260209091200154602d5460405163e8964e8160e01b81526001600160a01b03918216600482015291169063e8964e81906024015f604051808303815f87803b15801562003db3575f80fd5b505af115801562003dc6573d5f803e3d5ffd5b5050505060255f018260ff168154811062003de55762003de562007c79565b5f91825260209091200154602e5460405163e8964e8160e01b81526001600160a01b03918216600482015291169063e8964e81906024015f604051808303815f87803b15801562003e34575f80fd5b505af115801562003e47573d5f803e3d5ffd5b5050602c54602780546001600160a01b039092169350915060ff851690811062003e755762003e7562007c79565b5f91825260209091200180546001600160a01b0319166001600160a01b03928316179055602d546028805491909216919060ff851690811062003ebc5762003ebc62007c79565b5f91825260209091200180546001600160a01b0319166001600160a01b03928316179055602e546029805491909216919060ff851690811062003f035762003f0362007c79565b5f91825260208