UNPKG

@layerzerolabs/oapp-alt-evm

Version:

LayerZero Labs reference EVM OmniChain Application (OAppAlt) for EndpointV2Alt implementation

1 lines 1 MB
{"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":"altToken","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"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_WithAlt","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_OAppSend_WithAlt_WithVerify","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_Send_WithAlt","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":"SafeCastOverflowedUintDowncast","inputs":[{"name":"bits","type":"uint8","internalType":"uint8"},{"name":"value","type":"uint256","internalType":"uint256"}]}],"bytecode":{"object":"0x60806040819052600c8054600160ff199182168117909255601f805490911690911790556200002e9062000242565b604051809103905ff08015801562000048573d5f803e3d5ffd5b50601f80546001600160a01b039290921661010002610100600160a81b0319909216919091179055602480546001600160801b03191667016345785d8a00001790556033805463ffffffff19166001179055604051620000a89062000250565b6040808252601190820152704e6174697665416c74546f6b656e735f4160781b6060820152608060208201819052600590820152644e41545f4160d81b60a082015260c001604051809103905ff08015801562000107573d5f803e3d5ffd5b5060338054600160201b600160e01b0319166401000000006001600160a01b03939093169290920263ffffffff60c01b191691909117600160c11b179055604051620001539062000250565b6040808252601190820152702730ba34bb32a0b63a2a37b5b2b739afa160791b6060820152608060208201819052600590820152642720aa2fa160d91b60a082015260c001604051809103905ff080158015620001b2573d5f803e3d5ffd5b50603480546001600160a01b039283166001600160a01b031991821617909155603880548216600117905560398054909116600217905568056bc75e2d63100000603a5560375416603b5560408051808201909152600b81526a12195b1b1bc81ddbdc9b1960aa1b6020820152603c906200022e9082620002fc565b503480156200023b575f80fd5b50620003c8565b6107c7806202e04283390190565b610a43806202e80983390190565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200028757607f821691505b602082108103620002a657634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002f757805f5260205f20601f840160051c81016020851015620002d35750805b601f840160051c820191505b81811015620002f4575f8155600101620002df565b50505b505050565b81516001600160401b038111156200031857620003186200025e565b620003308162000329845462000272565b84620002ac565b602080601f83116001811462000366575f84156200034e5750858301515b5f19600386901b1c1916600185901b178555620003c0565b5f85815260208120601f198616915b82811015620003965788860151825594840194600190910190840162000375565b5085821015620003b457878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6202dc6b80620003d75f395ff3fe6080604052600436106200031a575f3560e01c806382411c7711620001aa578063b954fdf611620000ea578063defd9da6116200009e578063ec53eaa01162000076578063ec53eaa01462000a00578063f93e1d611462000a17578063fa7626d41462000a5c578063faed6c581462000a77575f80fd5b8063defd9da61462000992578063e20c9f7114620009d2578063e99b6b3114620009e9575f80fd5b8063b954fdf614620008a5578063ba414fa614620008e9578063baead19c1462000900578063d6d62497146200091a578063db76826a146200093e578063dedae027146200097b575f80fd5b8063a29c8984116200015e578063b1dcf5c81162000136578063b1dcf5c8146200082d578063b5508aa91462000854578063b752b72a146200086b578063b76bada5146200088f575f80fd5b8063a29c898414620007db578063ae6ce40014620007f2578063b0464fdc1462000816575f80fd5b806382411c7714620003c0578063834bd15914620006f357806385226c811462000717578063916a17c6146200073d5780639751ca861462000763578063997cff1b14620007b7575f80fd5b80633e5e3c23116200027657806360197889116200022a578063699cbade1162000202578063699cbade14620006485780636e1775e31462000666578063703ca254146200069c5780637982cf4214620006c0575f80fd5b80636019788914620005da57806365449eb014620005fe57806366d9a9a01462000622575f80fd5b80633e5e3c2314620004e35780633f7286f414620004fa5780634c1fc6941462000511578063518e8ab0146200052857806351aa318b14620005775780635ea0fefe14620005a5575f80fd5b80631cc4652511620002ce5780631cc4652514620003fe5780631ed7831c14620004225780632113ce6214620004485780632a35d25014620004825780632ade388014620004a65780633bbd6a9414620004cc575f80fd5b8063088dd11e1462000326578063090852b6146200033f5780630a69faa914620003635780630a9254e4146200037a5780630afba86814620003915780631766f5a414620003c0575f80fd5b366200032257005b5f80fd5b34801562000332575f80fd5b506200033d62000a9b565b005b3480156200034b575f80fd5b506200033d6200035d3660046200735a565b62000b3f565b6200033d62000374366004620074c9565b62000b67565b34801562000386575f80fd5b506200033d62000c9c565b3480156200039d575f80fd5b50620003a861271081565b60405161ffff90911681526020015b60405180910390f35b348015620003cc575f80fd5b50620003dd670de0b6b3a764000081565b6040516effffffffffffffffffffffffffffff9091168152602001620003b7565b3480156200040a575f80fd5b506200033d6200041c3660046200757d565b62001129565b3480156200042e575f80fd5b50620004396200117e565b604051620003b79190620075f1565b34801562000454575f80fd5b5060245462000469906001600160801b031681565b6040516001600160801b039091168152602001620003b7565b3480156200048e575f80fd5b5062000439620004a036600462007605565b620011e0565b348015620004b2575f80fd5b50620004bd620012e9565b604051620003b7919062007719565b6200033d620004dd3660046200779a565b62001431565b348015620004ef575f80fd5b5062000439620014ec565b34801562000506575f80fd5b50620004396200154c565b3480156200051d575f80fd5b506200033d620015ac565b34801562000534575f80fd5b506200054c620005463660046200784d565b620019d9565b6040805161ffff90941684526001600160801b039283166020850152911690820152606001620003b7565b34801562000583575f80fd5b506200058f6201117181565b60405163ffffffff9091168152602001620003b7565b348015620005b1575f80fd5b50620005c9620005c33660046200789f565b620019f5565b6040519015158152602001620003b7565b348015620005e6575f80fd5b506200033d620005f8366004620078cc565b62001a27565b3480156200060a575f80fd5b506200033d6200061c366004620079d4565b620025e5565b3480156200062e575f80fd5b5062000639620026be565b604051620003b7919062007ada565b34801562000654575f80fd5b506200046968056bc75e2d6310000081565b34801562000672575f80fd5b506200068a6200068436600462007b57565b6200282e565b604051620003b7949392919062007bca565b348015620006a8575f80fd5b506200033d620006ba36600462007bf9565b62002850565b348015620006cc575f80fd5b50620006e4620006de3660046200789f565b62002a09565b604051620003b7919062007c36565b348015620006ff575f80fd5b506200033d6200071136600462007c4a565b62002af0565b34801562000723575f80fd5b506200072e62002ff3565b604051620003b7919062007cc2565b34801562000749575f80fd5b5062000754620030c8565b604051620003b7919062007cd6565b3480156200076f575f80fd5b5062000787620007813660046200784d565b620031ad565b604080516001600160801b03948516815263ffffffff9093166020840152921691810191909152606001620003b7565b348015620007c3575f80fd5b506200033d620007d536600462007b57565b620031bc565b6200033d620007ec36600462007d49565b62003213565b348015620007fe575f80fd5b506200033d6200081036600462007dd3565b6200329a565b34801562000822575f80fd5b506200075462003337565b34801562000839575f80fd5b5062000845620186a081565b604051908152602001620003b7565b34801562000860575f80fd5b506200072e6200341c565b34801562000877575f80fd5b506200033d6200088936600462007df1565b620034f1565b3480156200089b575f80fd5b5062000845600381565b348015620008b1575f80fd5b50620008c9620008c33660046200784d565b6200350e565b604080516001600160801b039093168352602083019190915201620003b7565b348015620008f5575f80fd5b50620005c962003528565b3480156200090c575f80fd5b506200084564e8d4a5100081565b34801562000926575f80fd5b506200033d6200093836600462007e10565b620035cc565b3480156200094a575f80fd5b50620009626200095c36600462007e69565b620054be565b6040516001600160a01b039091168152602001620003b7565b34801562000987575f80fd5b506200033d620054e7565b3480156200099e575f80fd5b506200033d620009b036600462007e96565b602480546001600160801b0319166001600160801b0392909216919091179055565b348015620009de575f80fd5b5062000439620059f4565b348015620009f5575f80fd5b506200033d62005a54565b6200033d62000a11366004620078cc565b62005c4e565b34801562000a23575f80fd5b5062000a3b62000a353660046200784d565b62005d80565b604080516001600160801b03938416815292909116602083015201620003b7565b34801562000a68575f80fd5b50601f54620005c99060ff1681565b34801562000a83575f80fd5b506200033d62000a9536600462007eb4565b62005d8e565b62000ad362030d405f62000acb60408051600360f01b602082015281516002818303018152602290910190915290565b919062005e19565b603e9062000ae2908262007faa565b506038546001600160a01b03163162000afa620015ac565b60335460375462000b2291600160c01b900463ffffffff16906001600160a01b0316620034f1565b6038546001600160a01b03163162000b3b828262005e88565b5050565b62000b3b82826001600160a01b03165f1b5f8060405180602001604052805f81525062002af0565b5f60235f62000b77878762005ef5565b63ffffffff16815260208101919091526040015f908120546001600160a01b031691508062000ba68562005f1b565b92505091505f604051806060016040528062000bc38a8a62006005565b63ffffffff16815260200162000bda8a8a62006016565b815260200162000beb8a8a62006032565b6001600160401b0316905290506001600160a01b038416630c0c389e6001600160801b038581169085168462000c228d8d62006058565b62000c2e8e8e6200606c565b604080516020810182525f815290516001600160e01b031960e089901b16815262000c61949392918e9160040162008072565b5f604051808303818589803b15801562000c79575f80fd5b5088f115801562000c8c573d5f803e3d5ffd5b5050505050505050505050505050565b60385460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c88a5e6d906044015f604051808303815f87803b15801562000d02575f80fd5b505af115801562000d15573d5f803e3d5ffd5b505060395460405163c88a5e6d60e01b81526001600160a01b039091166004820152683635c9adc5dea000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d91506044015f604051808303815f87803b15801562000d7f575f80fd5b505af115801562000d92573d5f803e3d5ffd5b505060335460358054600181810183555f8390527fcfa4bec1d3298408bb5afcfcd9c430549c5b31f8aa5c5848151c0a55f473c34d91820180546001600160a01b03199081166001600160a01b03600160201b909704871617909155603454845492830190945591018054909116919092161790555062000e1490506200607d565b62000e7d60026001603580548060200260200160405190810160405280929190818152602001828054801562000e7257602002820191905f5260205f20905b81546001600160a01b0316815260019091019060200180831162000e53575b5050505050620035cc565b62000eec6040518060200162000e939062007012565b601f1982820381018352601f90910116604081815260335463ffffffff165f9081526023602090815290829020546001600160a01b03169083015230908201526060015b60405160208183030381529060405262006087565b603680546001600160a01b0319166001600160a01b039290921691909117905560405162000f739062000f226020820162007012565b818103601f199081018352601f909101166040818152603354600160c01b900463ffffffff165f9081526023602090815290829020546001600160a01b031690830152309082015260600162000ed7565b603780546001600160a01b0319166001600160a01b03929092169190911790556040805160028082526060820183525f92602083019080368337505060365482519293506001600160a01b0316918391505f9062000fd55762000fd5620080e4565b6001600160a01b039283166020918202929092010152603754825191169082906001908110620010095762001009620080e4565b6001600160a01b0390921660209283029190910190910152604051631c0f289560e21b8152309063703ca2549062001046908490600401620075f1565b5f604051808303815f87803b1580156200105e575f80fd5b505af115801562001071573d5f803e3d5ffd5b5050505060365f9054906101000a90046001600160a01b03166001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620010c6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620010ec9190620080f8565b603d80546001600160a01b0319166001600160a01b039290921691909117905560408051602081019091525f8152603e9062000b3b908262007faa565b62000b3b82828460ff166001600160401b038111156200114d576200114d620073d6565b60405190808252806020026020018201604052801562001177578160200160208202803683370190505b50620035cc565b60606016805480602002602001604051908101604052809291908181526020018280548015620011d657602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311620011b7575b5050505050905090565b60608160ff166001600160401b03811115620012005762001200620073d6565b6040519080825280602002602001820160405280156200122a578160200160208202803683370190505b509050825b6200123b83856200812a565b60ff168160ff161015620012d65760ff81165f9081526023602090815260408083205481516001600160a01b03909116928101929092523090820152600160608201526200128e90879060800162000ed7565b905080836200129e878562008146565b60ff1681518110620012b457620012b4620080e4565b6001600160a01b0390921660209283029190910190910152506001016200122f565b50620012e28162002850565b9392505050565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101562001428575f84815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b8282101562001410578382905f5260205f200180546200137e9062007f21565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ac9062007f21565b8015620013fb5780601f10620013d157610100808354040283529160200191620013fb565b820191905f5260205f20905b815481529060010190602001808311620013dd57829003601f168201915b5050505050815260200190600101906200135e565b5050505081525050815260200190600101906200130c565b50505050905090565b63ffffffff87165f908152602360205260408120546001600160a01b03169080806200145d89620060e3565b925092509250836001600160a01b03166391d20fa18284908d8b8d898d8d60405180602001604052805f8152506040518a63ffffffff1660e01b8152600401620014ae979695949392919062008162565b5f604051808303818589803b158015620014c6575f80fd5b5088f1158015620014d9573d5f803e3d5ffd5b5050505050505050505050505050505050565b60606018805480602002602001604051908101604052809291908181526020018280548015620011d657602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620011b7575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015620011d657602002820191905f5260205f209081546001600160a01b03168152600190910190602001808311620011b7575050505050905090565b6038546040516303223eab60e11b81526001600160a01b039091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b15801562001603575f80fd5b505af115801562001616573d5f803e3d5ffd5b505060365460335460405163f77e5dd360e01b81525f94506001600160a01b03909216925063f77e5dd3916200166591600160c01b900463ffffffff1690603c90603e90879060040162008244565b6040805180830381865afa15801562001680573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620016a69190620082dc565b5190505f620016b7826002620082f9565b6033546038546040516340c10f1960e01b81526001600160a01b03918216600482015260248101849052929350600160201b90910416906340c10f19906044015f604051808303815f87803b1580156200170f575f80fd5b505af115801562001722573d5f803e3d5ffd5b505060335460365460405163095ea7b360e01b81526001600160a01b03918216600482015260248101869052600160201b90920416925063095ea7b391506044016020604051808303815f875af115801562001780573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620017a6919062008323565b5060365460335460405163b4ab5dd160e01b81525f926001600160a01b03169163b4ab5dd191620017f091600160c01b900463ffffffff1690603c90603e9088906004016200833f565b6080604051808303815f875af11580156200180d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200183391906200839c565b90506200184881604001515f01518462005e88565b6200185c8160400151602001515f62005e88565b603354603d546040516370a0823160e01b81526001600160a01b039182166004820152620018e292600160201b9004909116906370a08231906024015b602060405180830381865afa158015620018b5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620018db919062008407565b5f62005e88565b6033546038546040516370a0823160e01b81526001600160a01b0391821660048201526200196892600160201b9004909116906370a08231906024015b602060405180830381865afa1580156200193b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001961919062008407565b8462005e88565b60335460278054620019d492600160201b90046001600160a01b0316916370a08231915f906200199c576200199c620080e4565b5f9182526020909120015460405160e083901b6001600160e01b03191681526001600160a01b0390911660048201526024016200191f565b505050565b5f805f620019e88585620061db565b9250925092509250925092565b61ffff82165f9081526020808052604080832084845290915281208162001a1c8262006256565b119150505b92915050565b5f62001a34848462005ef5565b63ffffffff81165f908152602360205260408120549192506001600160a01b03909116908163402f846862001a6a888862006058565b62001a76898962006005565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015263ffffffff1660248201526044016040805180830381865afa15801562001ac3573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001ae991906200842c565b5090505f62001af9878762006274565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052506040805163054fd4d560e41b8152905195965090946001600160a01b03881694506354fd4d509350600480830193506060928290030181865afa15801562001b72573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001b98919062008468565b50509050806001600160401b03166003036200205157825f6001600160a01b038216639c33abf762001bcb8c8c62006005565b62001bd78d8d62006058565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b03166024820152600260448201526064015f60405180830381865afa15801562001c2c573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001c559190810190620084f4565b90505f8180602001905181019062001c6e919062008597565b608001515f8151811062001c865762001c86620080e4565b602002602001015190505f62001c9d8c8c62006285565b60405162001cad92919062008678565b6040518091039020905060605f630223536e60e01b8884606460405160240162001cda9392919062008687565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03851663f010cb238d898562001d2f426103e8620086b4565b6040518563ffffffff1660e01b815260040162001d509493929190620086ca565b602060405180830381865afa15801562001d6c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001d92919062008407565b905062001d9f8162006296565b6040805160018082528183019092529194505f9250816020015b62001dc362007020565b81526020019060019003908162001db95790505090506040518060a001604052808d63ffffffff168152602001886001600160a01b03168152602001838152602001426103e862001e159190620086b4565b815260200184815250815f8151811062001e335762001e33620080e4565b602090810291909101015260405163b143044b60e01b81526001600160a01b0386169063b143044b9062001e6c9084906004016200870c565b5f604051808303815f87803b15801562001e84575f80fd5b505af115801562001e97573d5f803e3d5ffd5b505050505f630894edf160e01b8a8660405160240162001eb9929190620087bc565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03871663f010cb238f8b8562001f0e426103e8620086b4565b6040518563ffffffff1660e01b815260040162001f2f9493929190620086ca565b602060405180830381865afa15801562001f4b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062001f71919062008407565b905062001f7e8162006296565b9450506040518060a001604052808e63ffffffff168152602001896001600160a01b03168152602001828152602001426103e862001fbd9190620086b4565b815260200185815250825f8151811062001fdb5762001fdb620080e4565b602090810291909101015260405163b143044b60e01b81526001600160a01b0387169063b143044b90620020149085906004016200870c565b5f604051808303815f87803b1580156200202c575f80fd5b505af11580156200203f573d5f803e3d5ffd5b505050505050505050505050620025db565b806001600160401b0316600a036200257b57825f6001600160a01b038216639c33abf7620020808c8c62006005565b6200208c8d8d62006058565b6040516001600160e01b031960e085901b16815263ffffffff9290921660048301526001600160a01b03166024820152600160448201526064015f60405180830381865afa158015620020e1573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526200210a9190810190620084f4565b90505f81806020019051810190620021239190620087df565b608001515f815181106200213b576200213b620080e4565b602002602001015190505f620021528c8c620063ac565b6040516200216292919062008678565b604051809103902090505f620021798d8d6200606c565b8b6040516020016200218d92919062008830565b60405160208183030381529060405280519060200120905060605f63ab750e7560e01b898585604051602401620021c79392919062008857565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03861663f010cb238e8a856200221c426103e8620086b4565b6040518563ffffffff1660e01b81526004016200223d9493929190620086ca565b602060405180830381865afa15801562002259573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200227f919062008407565b90506200228c8162006296565b6040805160018082528183019092529194505f9190816020015b620022b062007020565b815260200190600190039081620022a65790505090506040518060a001604052808f63ffffffff1681526020018a6001600160a01b03168152602001848152602001426103e8620023029190620086b4565b815260200185815250815f81518110620023205762002320620080e4565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b90620023599084906004016200870c565b5f604051808303815f87803b15801562002371575f80fd5b505af115801562002384573d5f803e3d5ffd5b505050505050505f63594924da60e01b898585604051602401620023ab9392919062008857565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290505f6001600160a01b03861663f010cb238e8a8562002400426103e8620086b4565b6040518563ffffffff1660e01b8152600401620024219493929190620086ca565b602060405180830381865afa1580156200243d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002463919062008407565b9050620024708162006296565b6040805160018082528183019092529194505f9190816020015b6200249462007020565b8152602001906001900390816200248a5790505090506040518060a001604052808f63ffffffff1681526020018a6001600160a01b03168152602001848152602001426103e8620024e69190620086b4565b815260200185815250815f81518110620025045762002504620080e4565b602090810291909101015260405163b143044b60e01b81526001600160a01b0388169063b143044b906200253d9084906004016200870c565b5f604051808303815f87803b15801562002555575f80fd5b505af115801562002568573d5f803e3d5ffd5b50505050505050505050505050620025db565b6040516312cc947f60e01b81526001600160a01b038416906312cc947f90620025ab908b908b906004016200887d565b5f604051808303815f87803b158015620025c3575f80fd5b505af1158015620025d6573d5f803e3d5ffd5b505050505b5050505050505050565b5f5b8251811015620019d4575f838281518110620026075762002607620080e4565b602002602001015190505f5b8351811015620026b357816001600160a01b031663f0a9e481858381518110620026415762002641620080e4565b60209081029190910101516040516001600160e01b031960e084901b16815263ffffffff9091166004820152600160248201526044015f604051808303815f87803b1580156200268f575f80fd5b505af1158015620026a2573d5f803e3d5ffd5b505060019092019150620026139050565b5050600101620025e7565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562001428578382905f5260205f2090600202016040518060400160405290815f82018054620027149062007f21565b80601f0160208091040260200160405190810160405280929190818152602001828054620027429062007f21565b8015620027915780601f10620027675761010080835404028352916020019162002791565b820191905f5260205f20905b8154815290600101906020018083116200277357829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200281557602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620027d65790505b50505050508152505081526020019060010190620026e1565b5f365f806200283f878787620063bd565b935093509350935093509350935093565b80515f5b81811015620019d4575f838281518110620028735762002873620080e4565b602002602001015190505f5b83811015620029fe57828114620029f5575f858281518110620028a657620028a6620080e4565b602002602001015190505f816001600160a01b0316635e280f116040518163ffffffff1660e01b8152600401602060405180830381865afa158015620028ee573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620029149190620080f8565b6001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002950573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002976919062008892565b9050836001600160a01b0316633400288b8262002999856001600160a01b031690565b6040516001600160e01b031960e085901b16815263ffffffff92909216600483015260248201526044015f604051808303815f87803b158015620029db575f80fd5b505af1158015620029ee573d5f803e3d5ffd5b5050505050505b6001016200287f565b505060010162002854565b61ffff82165f90815260208080526040808320848452909152812060609162002a328262006256565b111562002ae9575f62002a458262006418565b5f81815260216020526040902080549192509062002a639062007f21565b80601f016020809104026020016040519081016040528092919081815260200182805462002a919062007f21565b801562002ae05780601f1062002ab65761010080835404028352916020019162002ae0565b820191905f5260205f20905b81548152906001019060200180831162002ac257829003601f168201915b50505050509250505b5092915050565b63ffffffff85165f908152602360205260409020546001600160a01b031662002b605760405162461bcd60e51b815260206004820152601b60248201527f656e64706f696e74206e6f74207965742072656769737465726564000000000060448201526064015b60405180910390fd5b63ffffffff85165f9081526020808052604080832087845290915281209062002b898262006256565b90505f855f0362002ba75762002b9f8362006256565b905062002bbb565b85821162002bb6578162002bb8565b855b90505b8015620025db578062002bce81620088b0565b9150505f62002bdd8462006476565b5f8181526021602052604081208054929350909162002bfc9062007f21565b80601f016020809104026020016040519081016040528092919081815260200182805462002c2a9062007f21565b801562002c795780601f1062002c4f5761010080835404028352916020019162002c79565b820191905f5260205f20905b81548152906001019060200180831162002c5b57829003601f168201915b505060405163997cff1b60e01b8152939450309363997cff1b935062002ca892508591508690600401620087bc565b5f6040518083038186803b15801562002cbf575f80fd5b505afa15801562002cd2573d5f803e3d5ffd5b5050604051636019788960e01b81523092506360197889915062002cfd9084908a90600401620088c8565b5f604051808303815f87803b15801562002d15575f80fd5b505af115801562002d28573d5f803e3d5ffd5b5050505f83815260226020526040812080549192509062002d499062007f21565b80601f016020809104026020016040519081016040528092919081815260200182805462002d779062007f21565b801562002dc65780601f1062002d9c5761010080835404028352916020019162002dc6565b820191905f5260205f20905b81548152906001019060200180831162002da857829003601f168201915b5050505050905062002dda816002620064d7565b1562002e92575f8062002ded83620064ec565b604051919350915081905f906001600160a01b0383169085908381818185875af1925050503d805f811462002e3e576040519150601f19603f3d011682016040523d82523d5f602084013e62002e43565b606091505b505090508062002e8d5760405162461bcd60e51b81526020600482015260146024820152732330b4b632b2103a379039b2b7321022ba3432b960611b604482015260640162002b57565b505050505b62002e9f816001620064d7565b1562002efc576040516307629f5560e51b8152309063ec53eaa09062002ecc9085908590600401620088c8565b5f604051808303815f87803b15801562002ee4575f80fd5b505af115801562002ef7573d5f803e3d5ffd5b505050505b62002f09816005620064d7565b1562002f6857604051630a69faa960e01b81523090630a69faa99062002f3890859085908c90600401620088f0565b5f604051808303815f87803b15801562002f50575f80fd5b505af115801562002f63573d5f803e3d5ffd5b505050505b6001600160a01b0388161580159062002f89575062002f89816003620064d7565b1562002fea576040516328a7226160e21b8152309063a29c89849062002fba908590859088908e906004016200892e565b5f604051808303815f87803b15801562002fd2575f80fd5b505af115801562002fe5573d5f803e3d5ffd5b505050505b50505062002bbb565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562001428578382905f5260205f20018054620030369062007f21565b80601f0160208091040260200160405190810160405280929190818152602001828054620030649062007f21565b8015620030b35780601f106200308957610100808354040283529160200191620030b3565b820191905f5260205f20905b8154815290600101906020018083116200309557829003601f168201915b50505050508152602001906001019062003016565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562001428575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200319457602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620031555790505b50505050508152505081526020019060010190620030eb565b5f805f620019e88585620065df565b5f620031c984846200606c565b90508181146200320d5760405162461bcd60e51b815260206004820152600e60248201526d0ceead2c840dcdee840dac2e8c6d60931b604482015260640162002b57565b50505050565b30633bbd6a9462003225878762005ef5565b62003231888862006058565b868686620032408c8c620063ac565b6040518863ffffffff1660e01b815260040162003264979695949392919062008978565b5f604051808303815f87803b1580156200327c575f80fd5b505af11580156200328f573d5f803e3d5ffd5b505050505050505050565b8060235f836001600160a01b031663416ecebf6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620032db573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003301919062008892565b63ffffffff16815260208101919091526040015f2080546001600160a01b0319166001600160a01b039290921691909117905550565b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562001428575f8481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156200340357602002820191905f5260205f20905f905b82829054906101000a900460e01b6001600160e01b03191681526020019060040190602082600301049283019260010382029150808411620033c45790505b505050505081525050815260200190600101906200335a565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562001428578382905f5260205f200180546200345f9062007f21565b80601f01602080910402602001604051908101604052809291908181526020018280546200348d9062007f21565b8015620034dc5780601f10620034b257610100808354040283529160200191620034dc565b820191905f5260205f20905b815481529060010190602001808311620034be57829003601f168201915b5050505050815260200190600101906200343f565b62000b3b82825f8060405180602001604052805f81525062002af0565b5f806200351c848462006651565b915091505b9250929050565b6008545f9060ff161562003540575060085460ff1690565b604051630667f9d760e41b8152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190526519985a5b195960d21b60248301525f9163667f9d7090604401602060405180830381865afa1580156200359f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620035c5919062008407565b1415905090565b8260ff166001600160401b03811115620035ea57620035ea620073d6565b60405190808252806020026020018201604052801562003614578160200160208202803683370190505b5080516200362b916025916020909101906200705b565b508260ff166001600160401b038111156200364a576200364a620073d6565b60405190808252806020026020018201604052801562003674578160200160208202803683370190505b5080516200368b91602691602090910190620070bf565b508260ff166001600160401b03811115620036aa57620036aa620073d6565b604051908082528060200260200182016040528015620036d4578160200160208202803683370190505b508051620036eb916027916020909101906200705b565b508260ff166001600160401b038111156200370a576200370a620073d6565b60405190808252806020026020018201604052801562003734578160200160208202803683370190505b5080516200374b916028916020909101906200705b565b508260ff166001600160401b038111156200376a576200376a620073d6565b60405190808252806020026020018201604052801562003794578160200160208202803683370190505b508051620037ab916029916020909101906200705b565b50604080516001808252818301909252906020808301908036833750508151620037dd92602a9250602001906200705b565b506040516001625e79b760e01b0319815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801562003830573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620038569190620080f8565b602a80545f906200386b576200386b620080e4565b5f918252602082200180546001600160a01b0319166001600160a01b0393909316929092179091555b8360ff168160ff16101562003aab575f620038b18260016200812a565b60ff1690505f838360ff1681518110620038cf57620038cf620080e4565b602002602001015190508160256001018460ff1681548110620038f657620038f6620080e4565b905f5260205f2090600891828204019190066004026101000a81548163ffffffff021916908363ffffffff1602179055505f6001600160a01b0316816001600160a01b031603620039d257813060405162003951906200716d565b63ffffffff90921682526001600160a01b03166020820152604001604051809103905ff08015801562003986573d5f803e3d5ffd5b506025805460ff8616908110620039a157620039a1620080e4565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b0316021790555062003a67565b813082604051620039e3906200717b565b63ffffffff90931683526001600160a01b039182166020840152166040820152606001604051809103905ff08015801562003a20573d5f803e3d5ffd5b506025805460ff861690811062003a3b5762003a3b620080e4565b905f5260205f20015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055505b62003aa060255f018460ff168154811062003a865762003a86620080e4565b5f918252602090912001546001600160a01b03166200329a565b505060010162003894565b503060405162003abb9062007189565b6001600160a01b039091168152602001604051809103905ff08015801562003ae5573d5f803e3d5ffd5b50602b80546001600160a01b0319166001600160a01b03929092169190911790555f5b8360ff168160ff161015620051ac575f83600181111562003b2d5762003b2d620089d9565b0362004fba575f60255f018260ff168154811062003b4f5762003b4f620080e4565b905f5260205f20015f9054906101000a90046001600160a01b03169050308164e8d4a51000620186a060405162003b869062007197565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103905ff08015801562003bc3573d5f803e3d5ffd5b50602c80546001600160a01b0319166001600160a01b0392909216919091179055604051819062003bf490620071a5565b6001600160a01b039091168152602001604051809103905ff08015801562003c1e573d5f803e3d5ffd5b50602c6001015f6101000a8154816001600160a01b0302191690836001600160a01b03160217905550308164e8d4a51000620186a060405162003c6190620071b3565b6001600160a01b03948516815293909216602084015260408301526060820152608001604051809103905ff08015801562003c9e573d5f803e3d5ffd5b50602e80546001600160a01b0319166001600160a01b03929092169190911790556025805460ff841690811062003cd95762003cd9620080e4565b5f91825260209091200154602c5460405163e8964e8160e01b81526001600160a01b03918216600482015291169063e8964e81906024015f604051808303815f87803b15801562003d28575f80fd5b505af115801562003d3b573d5f803e3d5ffd5b5050505060255f018260ff168154811062003d5a5762003d5a620080e4565b5f91825260209091200154602d5460405163e8964e8160e01b81526001600160a01b03918216600482015291169063e8964e81906024015f604051808303815f87803b15801562003da9575f80fd5b505af115801562003dbc573d5f803e3d5ffd5b5050505060255f018260ff168154811062003ddb5762003ddb620080e4565b5f91825260209091200154602e5460405163e8964e8160e01b81526001600160a01b03918216600482015291169063e8964e81906024015f604051808303815f87803b15801562003e2a575f80fd5b505af115801562003e3d573d5f803e3d5ffd5b5050602c54602780546001600160a01b039092169350915060ff851690811062003e6b5762003e6b620080e4565b5f91825260209091200180546001600160a01b0319166001600160a01b03928316179055602d54602880549190921691