@across-protocol/contracts 5.0.11-alpha.4 → 5.0.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/contracts/handlers/MulticallHandler.sol +7 -1
- package/contracts/libraries/SafeTransferERC20.sol +21 -0
- package/contracts/libraries/TronTransferLib.sol +42 -0
- package/contracts/periphery/SpokePoolPeriphery.sol +4 -0
- package/contracts/periphery/counterfactual/CounterfactualDepositSpokePool.sol +7 -3
- package/contracts/periphery/counterfactual/CounterfactualDepositSpokePoolTr.sol +36 -0
- package/contracts/periphery/counterfactual/WithdrawImplementation.sol +3 -6
- package/contracts/periphery/counterfactual/WithdrawImplementationTron.sol +22 -0
- package/contracts/sp1-helios/SP1AutoVerifier.sol +1 -1
- package/contracts/spoke-pools/SpokePool.sol +11 -6
- package/contracts/spoke-pools/Tron_SpokePool.sol +65 -0
- package/contracts/test/MockTronUSDT.sol +36 -0
- package/contracts/tron/TronCounterfactualImports.sol +4 -3
- package/contracts/tron/TronImports.sol +2 -2
- package/contracts/tron/TronPeripheryImports.sol +1 -1
- package/dist/broadcast/deployed-addresses.json +18 -23
- package/dist/evm/artifacts/AcrossMessageHandlerMock.sol/AcrossMessageHandlerMock.json +1 -1
- package/dist/evm/artifacts/AdminWithdrawManager.sol/AdminWithdrawManager.json +1 -1
- package/dist/evm/artifacts/Arbitrum_SpokePool.sol/Arbitrum_SpokePool.json +1 -1
- package/dist/evm/artifacts/Blast_SpokePool.sol/Blast_SpokePool.json +1 -1
- package/dist/evm/artifacts/Boba_SpokePool.sol/Boba_SpokePool.json +1 -1
- package/dist/evm/artifacts/Cher_SpokePool.sol/Cher_SpokePool.json +1 -1
- package/dist/evm/artifacts/CounterfactualDepositSpokePool.sol/CounterfactualDepositSpokePool.json +1 -1
- package/dist/evm/artifacts/CounterfactualDepositSpokePoolTr.sol/CounterfactualDepositSpokePoolTr.json +1 -0
- package/dist/evm/artifacts/DstOFTHandler.sol/DstOFTHandler.json +1 -1
- package/dist/evm/artifacts/Ethereum_SpokePool.sol/Ethereum_SpokePool.json +1 -1
- package/dist/evm/artifacts/HubPoolTestBase.sol/MockAddressWhitelist.json +1 -1
- package/dist/evm/artifacts/HubPoolTestBase.sol/MockFinder.json +1 -1
- package/dist/evm/artifacts/HubPoolTestBase.sol/MockIdentifierWhitelist.json +1 -1
- package/dist/evm/artifacts/HubPoolTestBase.sol/MockLpTokenFactory.json +1 -1
- package/dist/evm/artifacts/HubPoolTestBase.sol/MockOptimisticOracle.json +1 -1
- package/dist/evm/artifacts/HubPoolTestBase.sol/MockStore.json +1 -1
- package/dist/evm/artifacts/Ink_SpokePool.sol/Ink_SpokePool.json +1 -1
- package/dist/evm/artifacts/Lens_SpokePool.sol/Lens_SpokePool.json +1 -1
- package/dist/evm/artifacts/Linea_SpokePool.sol/Linea_SpokePool.json +1 -1
- package/dist/evm/artifacts/Lisk_SpokePool.sol/Lisk_SpokePool.json +1 -1
- package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockCrossDomainMessenger.json +1 -1
- package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL1StandardBridge.json +1 -1
- package/dist/evm/artifacts/MockBedrockStandardBridge.sol/MockBedrockL2StandardBridge.json +1 -1
- package/dist/evm/artifacts/MockOptimism_SpokePool.sol/MockOptimism_SpokePool.json +1 -1
- package/dist/evm/artifacts/MockSpokePool.sol/MockSpokePool.json +1 -1
- package/dist/evm/artifacts/MockSpokePoolV2.sol/MockSpokePoolV2.json +1 -1
- package/dist/evm/artifacts/MockTronUSDT.sol/MockTronUSDT.json +1 -0
- package/dist/evm/artifacts/MulticallHandler.sol/MulticallHandler.json +1 -1
- package/dist/evm/artifacts/OP_SpokePool.sol/OP_SpokePool.json +1 -1
- package/dist/evm/artifacts/Optimism_SpokePool.sol/Optimism_SpokePool.json +1 -1
- package/dist/evm/artifacts/Ovm_SpokePool.sol/Ovm_SpokePool.json +1 -1
- package/dist/evm/artifacts/Ovm_WithdrawalHelper.sol/Ovm_WithdrawalHelper.json +1 -1
- package/dist/evm/artifacts/PermissionedMulticallHandler.sol/PermissionedMulticallHandler.json +1 -1
- package/dist/evm/artifacts/PolygonZkEVM_SpokePool.sol/PolygonZkEVM_SpokePool.json +1 -1
- package/dist/evm/artifacts/Polygon_SpokePool.sol/Polygon_SpokePool.json +1 -1
- package/dist/evm/artifacts/SP1AutoVerifier.sol/SP1AutoVerifier.json +1 -1
- package/dist/evm/artifacts/Scroll_SpokePool.sol/Scroll_SpokePool.json +1 -1
- package/dist/evm/artifacts/SpokePool.sol/SpokePool.json +1 -1
- package/dist/evm/artifacts/SpokePoolPeriphery.sol/SpokePoolPeriphery.json +1 -1
- package/dist/evm/artifacts/SpokePoolPeriphery.sol/SwapProxy.json +1 -1
- package/dist/evm/artifacts/SponsoredCCTPDstPeriphery.sol/SponsoredCCTPDstPeriphery.json +1 -1
- package/dist/evm/artifacts/SponsoredCCTPSrcPeriphery.sol/SponsoredCCTPSrcPeriphery.json +1 -1
- package/dist/evm/artifacts/SponsoredOFTSrcPeriphery.sol/SponsoredOFTSrcPeriphery.json +1 -1
- package/dist/evm/artifacts/TronTransferLib.sol/TronTransferLib.json +1 -0
- package/dist/evm/artifacts/Tron_SpokePool.sol/Tron_SpokePool.json +1 -0
- package/dist/evm/artifacts/Universal_SpokePool.sol/Universal_SpokePool.json +1 -1
- package/dist/evm/artifacts/WithdrawImplementation.sol/WithdrawImplementation.json +1 -1
- package/dist/evm/artifacts/WithdrawImplementationTron.sol/WithdrawImplementationTron.json +1 -0
- package/dist/evm/artifacts/WorldChain_SpokePool.sol/WorldChain_SpokePool.json +1 -1
- package/dist/evm/artifacts/ZkSync_SpokePool.sol/ZkSync_SpokePool.json +1 -1
- package/dist/evm/artifacts/eraVM_EIP7702.sol/SimpleContract.json +1 -1
- package/dist/evm/artifacts/eraVM_EIP7702.sol/SpokePoolEIP7702Test.json +1 -1
- package/dist/evm/artifacts/eraVM_EIP7702.sol/TestableMockSpokePool.json +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"constructor","inputs":[{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_RELAYER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_REPAYMENT_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INFINITE_FILL_DEADLINE","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_EXCLUSIVITY_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_TRANSFER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__OvmSpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_l2Eth","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"chainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositDeprecated_5947912356","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositFor","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositNow","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositQuoteTimeBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"depositV3","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositV3Now","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emergencyDeleteRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExternalCall","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeRelayerRefundLeaf","inputs":[{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"relayerRefundLeaf","type":"tuple","internalType":"struct SpokePoolInterface.RelayerRefundLeaf","components":[{"name":"amountToReturn","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"leafId","type":"uint32","internalType":"uint32"},{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"}]},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlowRelayLeaf","inputs":[{"name":"slowFillLeaf","type":"tuple","internalType":"struct V3SpokePoolInterface.V3SlowFill","components":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"}]},{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"originData","type":"bytes","internalType":"bytes"},{"name":"fillerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillDeadlineBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"fillRelay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillRelayWithUpdatedDeposit","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillStatuses","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fillV3Relay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayDataLegacy","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUnsafeDepositId","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getV3RelayHash","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"l2Eth","type":"address","internalType":"address"},{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_hubPool","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Gas","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"numberOfDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"oftMessengers","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"l2OftMessenger","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseDeposits","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseFills","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pausedDeposits","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pausedFills","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayRootBundle","inputs":[{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relayerRefund","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"remoteL1Tokens","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"requestSlowFill","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootBundles","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"},{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setCrossDomainAdmin","inputs":[{"name":"newCrossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1GasLimit","inputs":[{"name":"newl1Gas","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRemoteL1Token","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"l1Token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenBridge","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"tokenBridge","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBridges","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tryMulticall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"tuple[]","internalType":"struct MultiCallerUpgradeable.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unsafeDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawalRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wrappedNativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdminExternalCallExecuted","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimedRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"caller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EmergencyDeletedRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnabledDepositRoute","inputs":[{"name":"originToken","type":"address","indexed":true,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ExecutedRelayerRefundRoot","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"refundAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deferredRefunds","type":"bool","indexed":false,"internalType":"bool"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FilledRelay","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayer","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.V3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FilledV3Relay","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"PausedDeposits","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PausedFills","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetL1Gas","inputs":[{"name":"newL1Gas","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"tokenBridge","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetRemoteL1Token","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"l1Token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensBridged","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"V3FundsDeposited","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DepositsArePaused","inputs":[]},{"type":"error","name":"DisabledRoute","inputs":[]},{"type":"error","name":"ExpiredFillDeadline","inputs":[]},{"type":"error","name":"ExternalCallExecutionFailed","inputs":[]},{"type":"error","name":"FillsArePaused","inputs":[]},{"type":"error","name":"InsufficientSpokePoolBalanceToExecuteLeaf","inputs":[]},{"type":"error","name":"InvalidBytes32","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"InvalidDepositorSignature","inputs":[]},{"type":"error","name":"InvalidExclusiveRelayer","inputs":[]},{"type":"error","name":"InvalidFillDeadline","inputs":[]},{"type":"error","name":"InvalidMerkleLeaf","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidOutputToken","inputs":[]},{"type":"error","name":"InvalidPayoutAdjustmentPct","inputs":[]},{"type":"error","name":"InvalidQuoteTimestamp","inputs":[]},{"type":"error","name":"InvalidSlowFillRequest","inputs":[]},{"type":"error","name":"InvalidWithdrawalRecipient","inputs":[]},{"type":"error","name":"LowLevelCallFailed","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"MessageTooShort","inputs":[]},{"type":"error","name":"MsgValueDoesNotMatchInputAmount","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"OFTFeeUnderpaid","inputs":[]},{"type":"error","name":"OFTTokenMismatch","inputs":[]},{"type":"error","name":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c0806040523461026f5760208161558780380380916100208285610273565b83398101031261026f57516001600160a01b0381169081900361026f57306080525f60c0525f60a05260e052610e1061010052617e90610120525f5460ff8160081c1661026f5760ff80821603610235575b505f610160525f610180525f610140525f80604051602081019063011a412160e61b8252600481526100a5602482610273565b5190825afa3d1561022e573d6001600160401b03811161021a57604051906100d7601f8201601f191660200183610273565b81523d5f602083013e5b8161020e575b816101d8575b506101a0526040516152f0908161029782396080518181816111010152818161160e0152611765015260a0518161193f015260c051816119f8015260e05181818161088a0152818161387d01528181613f6001528181614368015281816149140152818161507201526150f50152610100518181816118de015261413f0152610120518181816104ae0152613f0c0152610140518181816119b801528181614ec60152614f6e01526101605181818161082d015281816147020152614dad015261018051818181612008015281816144af0152614dd601526101a051818181611c2f0152614e6c0152f35b90506020815191015190602081106101fd575b506001600160a01b031615155f6100ed565b5f199060200360031b1b165f6101eb565b805160201491506100e7565b634e487b7160e01b5f52604160045260245ffd5b60606100e1565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f610072565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761021a5760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461047f5780630c5d5f731461047a5780630cb84d9a146104755780630eaac9f0146104705780631186ec331461046b57806311eac8551461046657806315348e44146103f857806317fcb39b1461046157806319c1648c1461045c5780631b3d5559146104575780631fab657c1461045257806329cb924d1461044d5780632e378115146104485780632e63e59a146104435780633659cfe61461043e578063431023b814610439578063437b911614610434578063490e49ef1461042f578063493a4f841461042a5780634f1ef286146104255780635285e0581461042057806352d1902d1461041b578063541f4f1414610416578063577f51f81461041157806357f6dcb81461040c5780636068d6cb1461040757806361a04d3014610402578063670fa8ac146103fd5780636bbbcd2e146103f85780636e400983146103f35780636fd5c10e146103ee578063738b62e5146103e95780637659f9e0146103e4578063766e0703146103df578063775c0d03146103da5780637aef642c146103d55780637b939232146103d05780637ef413e1146103cb57806382e2c43f146103c65780638a7860ce146103c15780638b15788e146103bc578063927ede2d146103b75780639748cf7c146103b257806397943aa9146103ad578063979f2bc2146103a8578063983cb80f146103a357806399cc29681461039e5780639a8a059214610399578063a1244c6714610394578063a18a096e1461038f578063ac9650d81461038a578063ad5425c614610385578063adb5a6a614610335578063b27a430014610380578063b370b7f51461037b578063b4c0d7ab14610376578063babb6aac14610371578063bf10268d1461036c578063c35c83fc14610367578063ceb4c98714610362578063d7e1583a1461035d578063dda5211314610358578063ddd224f114610353578063de7eba781461034e578063deff4b2414610349578063e322921114610344578063ea86bd461461033f578063ee2a53f81461033a578063f79f29ed14610335578063fbbba9ac146103305763fc8a584f0361000e57612cb2565b612c2e565b6125eb565b612bf0565b612b4c565b612b23565b612a31565b6129fa565b6129d1565b6129ab565b612975565b612877565b61284c565b6127c8565b6126e9565b6126ba565b612678565b612632565b61257a565b6124db565b612383565b61235c565b612342565b6122ac565b612196565b6120ba565b61202c565b611fe9565b611fbb565b611f4a565b611ed2565b611db4565b611d7e565b611ce6565b611c54565b611c18565b611bf4565b611acd565b611a26565b6119dc565b61199c565b610851565b611962565b611928565b611902565b6118c2565b611845565b6117b5565b61174b565b611724565b6115cb565b611543565b611525565b611458565b611233565b6110da565b610ee1565b610d8e565b610d65565b610c5d565b610b3b565b6108d3565b61086b565b61080e565b6107a7565b6105da565b610543565b6104fd565b610492565b5f91031261048e57565b5f80fd5b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361048e57565b60e435906104f0826104d2565b565b35906104f0826104d2565b3461048e57602036600319011261048e576001600160a01b03600435610522816104d2565b165f52610c5d60205260206001600160a01b0360405f205416604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435610568816104d2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b63ffffffff81160361048e57565b61010435906104f082610589565b61012435906104f082610589565b61014435906104f082610589565b61016435906104f082610589565b35906104f082610589565b3461048e57602036600319011261048e5763ffffffff6004356105fc81610589565b61060461378a565b61060c613842565b168063ffffffff19610c5a541617610c5a557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b608435908160070b820361048e57565b60a435908160070b820361048e57565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761069957604052565b610669565b6101a0810190811067ffffffffffffffff82111761069957604052565b6060810190811067ffffffffffffffff82111761069957604052565b90601f8019910116810190811067ffffffffffffffff82111761069957604052565b604051906104f060c0836106d7565b604051906104f0610180836106d7565b604051906104f06101a0836106d7565b604051906104f06080836106d7565b67ffffffffffffffff811161069957601f01601f191660200190565b92919261075f82610737565b9161076d60405193846106d7565b82948184528183011161048e578281602093845f960137010152565b9080601f8301121561048e578160206107a493359101610753565b90565b61010036600319011261048e576107bf6004356104d2565b6107ca6024356104d2565b6107d2610649565b506107de60a435610589565b60c43567ffffffffffffffff811161048e576107fe903690600401610789565b506332ed1ba560e21b5f5260045ffd5b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e5760206040515f8152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261048e576004356108c6816104d2565b906024356107a4816104d2565b3461048e576108e1366108ae565b6108e961378a565b6108f1613842565b6001600160a01b038116918215158061098a575b61097b5761094c6001600160a01b0392610931836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156109f3575f916109c4575b506001600160a01b0380831691161415610905565b6109e6915060203d6020116109ec575b6109de81836106d7565b810190613853565b5f6109af565b503d6109d4565b613868565b67ffffffffffffffff81116106995760051b60200190565b9080601f8301121561048e578135610a27816109f8565b92610a3560405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610a5d5750505090565b8135815260209182019101610a50565b9080601f8301121561048e578135610a84816109f8565b92610a9260405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610aba5750505090565b602080918335610ac9816104d2565b815201910190610aad565b929190610ae0816109f8565b93610aee60405195866106d7565b602085838152019160051b810192831161048e57905b828210610b1057505050565b8135815260209182019101610b04565b9080601f8301121561048e578160206107a493359101610ad4565b606036600319011261048e57600435610b5381610589565b6024359067ffffffffffffffff821161048e5760c0600319833603011261048e57610b7c6106f9565b918060040135835260248101356020840152604481013567ffffffffffffffff811161048e57610bb29060043691840101610a10565b6040840152610bc3606482016105cf565b6060840152610bd4608482016104f2565b608084015260a48101359067ffffffffffffffff821161048e576004610bfd9236920101610a6d565b60a08301526044359167ffffffffffffffff831161048e57610c26610018933690600401610b20565b91612ce2565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020808501948460051b01011161048e57565b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e5780360390606060031983011261048e57602435610c9c81610589565b60443567ffffffffffffffff811161048e57610cbc903690600401610c2c565b919093610cc7613842565b600484013590610182190181121561048e57610d5b94610d5693610cf26004610d4f94880101612ed0565b95610d08610d036080890151613bb6565b613873565b6044610d13886136c8565b91013560208801519061016089015192610d2b6106f9565b998a5260208a01526040890152606088015260808701525f60a08701523691610ad4565b9083613bcc565b613c4e565b6100186001606555565b3461048e575f36600319011261048e576020604051428152f35b908161018091031261048e5790565b3461048e57604036600319011261048e5760043567ffffffffffffffff811161048e57610dbf903690600401610d7f565b602435610dcb82612edb565b6001600160a01b031691610de160208201612edb565b6001600160a01b031690610df760408201612edb565b6001600160a01b031690610e0d60608201612edb565b6001600160a01b0316610e2260808301612edb565b6001600160a01b031660e083013560c084013560a0850135610e476101008701612ee5565b93610e556101208801612ee5565b95610e636101408901612ee5565b976101608101610e7291612eef565b99909a610e7d610708565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610ecf92610753565b610160830152610018913391906136f9565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57610f12903690600401610d7f565b610f1a613842565b60ff61086b5460e01c166110cb5763ffffffff421690610140810190610f5283610f4384612ee5565b63ffffffff9182169116101590565b6110bc5761012081019263ffffffff610f6a85612ee5565b16106110ad57610f82610f7d3683612895565b6136c8565b90610f96825f5261087260205260405f2090565b5461109f57610fd8610fd27f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561109260808301359260a08101359060c081013560e08201359761100f6110096101008501359b612ee5565b91612ee5565b60408401359184359361103e611039611032602089013598610160810190612eef565b3691610753565b613d50565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461048e57602036600319011261048e576004356110f7816104d2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e5761116061378a565b61116861269f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561119c575061001890614adc565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611202575b506111cd575f80fd5b610018926111fd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612f45565b614a0b565b61122591935060203d60201161122c575b61121d81836106d7565b8101906139c7565b915f6111c4565b503d611213565b3461048e57608036600319011261048e5760043561125081610589565b6024359061125d826104d2565b604435611269816104d2565b60643591611276836104d2565b60ff5f5460081c161561048e576112be90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040908151916112ce81846106d7565b600983526020808401916820a1a927a9a996ab1960b91b83526112f3815191826106d7565b600581520194640312e302e360dc1b865260ff5f5460081c161561048e57610018956005611342936113479651902091209061047f5561048055611335614174565b61133d614183565b614197565b6141ef565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff00000000610c5a549260201b16911617610c5a55565b602060031982011261048e576004359067ffffffffffffffff821161048e576113be91600401610c2c565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061141857505050505090565b9091929394602080611449600193603f198682030187526040838b51805115158452015191818582015201906113c2565b97019301930191939290611409565b3461048e5761146636611393565b61146f816109f8565b9161147d60405193846106d7565b818352601f1961148c836109f8565b015f5b8181106115015750505f5b8281106114b357604051806114af86826113e6565b0390f35b806114fb6114c36001938761300f565b515f806114d1858989613023565b906114e16040518093819361303a565b0390305af4906114ef613047565b60208201529015159052565b0161149a565b6020906040516115108161067d565b5f81526060838201528282880101520161148f565b3461048e575f36600319011261048e5760206040516301e133808152f35b3461048e57604036600319011261048e5760243560043561156261378a565b61156a613842565b61086c54680100000000000000008110156106995780600163ffffffff920161086c558361159782612bcd565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261048e576004356115e3816104d2565b60243567ffffffffffffffff811161048e57611603903690600401610789565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e5761166d61378a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116a1576100189150614adc565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611703575b506116d1575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361048e5761001891600191614a0b565b61171d91925060203d60201161122c5761121d81836106d7565b905f6116c8565b3461048e575f36600319011261048e5760206001600160a01b036108695416604051908152f35b3461048e575f36600319011261048e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361048e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261048e576117cd6004356104d2565b6117d86024356104d2565b6117e36044356104d2565b6117eb610659565b506117f760c435610589565b60e43567ffffffffffffffff811161048e576107fe903690600401610789565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020838186019501011161048e57565b3461048e5760c036600319011261048e57600435611862816104d2565b60243560443591606435611875816104d2565b60843567ffffffffffffffff811161048e57611895903690600401611817565b9160a4359567ffffffffffffffff871161048e576118ba610018973690600401611817565b9690956130c9565b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060ff61086b5460e81c166040519015158152f35b3461048e575f36600319011261048e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461048e575f36600319011261048e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361048e57565b3461048e57602036600319011261048e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611a6681611a1c565b611a6e61378a565b611a76613842565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206107a49281815201906113c2565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611afe903690600401611817565b611b0661378a565b611b0e613842565b810160408282031261048e57813591611b26836104d2565b60208101359167ffffffffffffffff831161048e576001600160a01b0392611b4e9201610789565b91168015611be5576004825110611bd6575f8083516020850182855af190611b74613047565b9115611bc7577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611bae6114af9460405191829182611abc565b0390a2611bbb6001606555565b60405191829182611abc565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461048e575f36600319011261048e57602063ffffffff610c5a5416604051908152f35b3461048e575f36600319011261048e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261048e57600435611c6d816104d2565b602435611c79816104d2565b60443591611c86836104d2565b606435611c92816104d2565b60843560e43560c43560a435611ca7836104d2565b611caf610597565b93611cb86105a5565b95610144359967ffffffffffffffff8b1161048e57611cde6100189b3690600401611817565b9a909961316b565b61018036600319011261048e57600435611cff816104d2565b602435611d0b816104d2565b60443591611d18836104d2565b606435611d24816104d2565b60843560a43560c435611d356104e3565b90611d3e610597565b92611d476105a5565b94611d506105b3565b96610164359a67ffffffffffffffff8c1161048e57611d766100189c3690600401611817565b9b909a61318d565b3461048e57606036600319011261048e576020611dac600435611da0816104d2565b602435604435916132b3565b604051908152f35b3461048e57606036600319011261048e5760043560243567ffffffffffffffff811161048e57611de8903690600401611817565b9060443567ffffffffffffffff811161048e57611e09903690600401611817565b9190936040516020810190611e3281611e24468988876132f1565b03601f1981018352826106d7565b51902003611ec3575f93611e4d828695611e5694019061294f565b9281019061330e565b51611e8d611e6b335b6001600160a01b031690565b91611e2460405193849260208401966337bfd2c960e21b8852602485016133d9565b5190305af4611e9a613047565b9015611ea257005b60405163b8fe37a760e01b8152908190611ebf9060048301611abc565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461048e57602036600319011261048e57600435611eee61378a565b611ef6613842565b611eff81612bcd565b611f37576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261048e5760443560243560043560643560843560a4356101043560e43560c435611f7b6105a5565b93611f846105b3565b95611f8d6105c1565b97610184359b67ffffffffffffffff8d1161048e57611fb36100189d3690600401611817565b9c909b6133fb565b3461048e575f36600319011261048e5760206040517342000000000000000000000000000000000000078152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e5760e036600319011261048e5760043567ffffffffffffffff811161048e5761205d903690600401610d7f565b602435604435916064356084359060a43567ffffffffffffffff811161048e5761208b903690600401611817565b92909160c4359667ffffffffffffffff881161048e576120b2610018983690600401611817565b979096613473565b3461048e57606036600319011261048e576004356120d781610589565b602435906120e4826104d2565b604435906120f1826104d2565b60ff5f5460081c161561048e576121259063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261213482856106d7565b600984526020808501926820a1a927a9a996ab1960b91b8452612159815191826106d7565b6005815201640312e302e360dc1b815260ff5f5460081c161561048e576005611342936100189651902091209061047f5561048055611335614174565b3461048e57608036600319011261048e576004356121b3816104d2565b612224602435916121c383610589565b6044356121cf816104d2565b606435906121dc826104d2565b5f549461220a60ff600888901c16156121f4565b1590565b8097819861229e575b811561227e575b50612f45565b8561221b600160ff195f5416175f55565b61226757612f4c565b61222a57005b61223861ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61227961010061ff00195f5416175f55565b612f4c565b303b15915081612290575b505f612204565b60ff1660011490505f612289565b600160ff82161091506121fd565b3461048e57602036600319011261048e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356122ec81611a1c565b6122f461378a565b6122fc613842565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461048e575f36600319011261048e576020604051468152f35b3461048e575f36600319011261048e57602063ffffffff61086b5460c01c16604051908152f35b3461048e57604036600319011261048e576004356024356123a382614729565b6001600160a01b03821691825f526108736020526123d460405f20336001600160a01b03165f5260205260405f2090565b5492831561246d5761241d5f916123ea84614729565b61240733916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561243d8361242e611e5f84613bb6565b61243785613bb6565b90614247565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106124ae57505050505090565b90919293946020806124cc600193603f1986820301875289516113c2565b9701930193019193929061249f565b3461048e576124e936611393565b906124f382613561565b915f5b81811061250b57604051806114af868261247c565b5f80612518838587613023565b906125286040518093819361303a565b0390305af4612535613047565b901561255b5790600191612549828761300f565b52612554818661300f565b50016124f6565b604481511061048e5780602480600461048e94015183010191016135aa565b61018036600319011261048e576044356024356004356064356084356101043560e43560c43560a4356125ac84610589565b6125b46105a5565b946125bd6105b3565b96610164359a67ffffffffffffffff8c1161048e576125e36100189c3690600401611817565b9b909a61360d565b3461048e5760206126296001600160a01b03612606366108ae565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435612657816104d2565b165f52610c5c60205260206001600160a01b0360405f205416604051908152f35b3461048e575f36600319011261048e5760206001600160a01b0361086a5416604051908152f35b604051906126ae6020836106d7565b5f808352366020840137565b3461048e575f36600319011261048e576114af6126d561269f565b6040519182916020835260208301906113c2565b3461048e5760c036600319011261048e5760043560243560443560643560843567ffffffffffffffff811161048e57612726903690600401611817565b60a4939193359067ffffffffffffffff821161048e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461276f6127be933690600401611817565b92909161277a613842565b6127838a614729565b6127b2898b8989612795368888610753565b926127a1368b8b610753565b946001600160a01b03469216613d65565b60405196879687613096565b0390a36001606555005b3461048e576001600160a01b03806127df366108ae565b92906127e961378a565b6127f1613842565b1691825f52610c5d60205261281f8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461048e57602036600319011261048e576004355f52610872602052602060405f2054604051908152f35b3461048e575f36600319011261048e57602060405163ffffffff8152f35b9190916101808184031261048e576128ab610708565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261290f61012083016105cf565b61012085015261292261014083016105cf565b61014085015261016082013567ffffffffffffffff811161048e576129479201610789565b610160830152565b9060208282031261048e57813567ffffffffffffffff811161048e576107a49201612895565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611dac610f7d6020923690600401612895565b3461048e575f36600319011261048e57602060ff61086b5460e01c166040519015158152f35b3461048e575f36600319011261048e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461048e57602036600319011261048e57612a2a600435612a1a816104d2565b612a2261378a565b61133d613842565b6001606555005b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e57612a62903690600401612895565b6024359060443590612a72613842565b60ff61086b5460e01c166110cb5761014081015163ffffffff16612aa14263ffffffff165b9163ffffffff1690565b101580612b04575b612af557610d5b92612aba826136c8565b60c083015160208401519061016085015192612ad46106f9565b958652602086015260408501526060840152608083015260a0820152613cc7565b630c3a9b9d60e41b5f5260045ffd5b50612b126040820151613bb6565b6001600160a01b0316331415612aa9565b3461048e575f36600319011261048e5760206001600160a01b03610c5a54821c16604051908152f35b61016036600319011261048e576044356024356004356064356101043560e43560c43560a435608435612b7e85610589565b6101243595612b8c87610589565b610144359967ffffffffffffffff8b1161048e57612bb16100189b3690600401611817565b9a9099613765565b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612beb5761086c5f52600360205f20910201905f90565b612bb9565b3461048e57602036600319011261048e5760043561086c5481101561048e57612c1a604091612bcd565b506001815491015482519182526020820152f35b3461048e576001600160a01b0380612c45366108ae565b9290612c4f61378a565b612c57613842565b1691825f52610c5c602052612c858160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461048e57602036600319011261048e57612a2a600435612cd2816104d2565b612cda61378a565b611342613842565b9190612cec613842565b60808101612d04610d0382516001600160a01b031690565b602082019283514603612e04576121f0612d2c91846001612d2489612bcd565b5001546138e7565b612df55763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612de86060850195612d76612d70885163ffffffff1690565b8961396b565b8051958051612dd2612dc4612db3604085019a8c612d9a8d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946139e3565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612e82565b0390a46104f06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612e305750505090565b8251845260209384019390920191600101612e23565b90602080835192838152019201905f5b818110612e635750505090565b82516001600160a01b0316845260209384019390920191600101612e56565b949695919260a0946001600160a01b03612eae8196612ec2958a5260c060208b015260c08a0190612e13565b921660408801528682036060880152612e46565b951515608085015216910152565b6107a4903690612895565b356107a4816104d2565b356107a481610589565b903590601e198136030182121561048e570180359067ffffffffffffffff821161048e5760200191813603831361048e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612f4057565b612f22565b1561048e57565b9291909260ff5f5460081c161561048e57612f9890624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604090815191612fa881846106d7565b600983526020808401916820a1a927a9a996ab1960b91b8352612fcd815191826106d7565b600581520194640312e302e360dc1b865260ff5f5460081c161561048e576104f0956005611342936113479651902091209061047f5561048055611335614174565b8051821015612beb5760209160051b010190565b90821015612beb576113be9160051b810190612eef565b908092918237015f815290565b3d15613071573d9061305882610737565b9161306660405193846106d7565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b949290936130bb926107a4979587526020870152608060408701526080860191613076565b926060818503910152613076565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586613133959a9499166131258a8c83613110368888610753565b9161311c368b8b610753565b9346908d613d65565b604051978897169a87613096565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff821161316657565b613138565b96949290916104f09b9a999896949261318b63ffffffff4216988961314c565b985b9593919b999897969492909b6131a1613842565b61086b5460ff8160e81c166132a45760c01c63ffffffff16966131c3886136b1565b6131ea9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6131f2610718565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190613268919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061328b92610753565b61018082015261329a90613ea7565b6104f06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132eb6074826106d7565b51902090565b93929160209161330991604087526040870191613076565b930152565b9081602091031261048e57604051906020820182811067ffffffffffffffff8211176106995760405235815290565b906101806101606107a493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501526133b761012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906113c2565b6133f16040929594939560608352606083019061333d565b9460208201520152565b9c9a9998979695949392919096613410613842565b60ff61086b5460e81c166132a457613429908e336132b3565b96604051809e6134388261069e565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152613268565b979290959694939196613484613842565b60ff61086b5460e01c166110cb5761349f6101408a01612ee5565b6134ae4263ffffffff16612a97565b101580613542575b612af55761329a9861353761353d976134d2610f7d3685612895565b996134db6106f9565b9a6134e63686612895565b8c5260208c01528560408c01528660608c015261350436868b610753565b60808c015260a08b015261352f61351b8435613bb6565b9860e0610100860135950135953691610753565b963691610753565b95613d65565b613cc7565b5061355060408a0135613bb6565b6001600160a01b03163314156134b6565b9061356b826109f8565b61357860405191826106d7565b8281528092613589601f19916109f8565b01905f5b82811061359957505050565b80606060208093850101520161358d565b60208183031261048e5780519067ffffffffffffffff821161048e570181601f8201121561048e578051906135de82610737565b926135ec60405194856106d7565b8284526020838301011161048e57815f9260208093018386015e8301015290565b9b99989796949290959391613620613842565b61086b5460ff8160e81c166132a45760c01c63ffffffff1696613642886136b1565b6136699063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b613671610718565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152613268565b63ffffffff1663ffffffff81146131665760010190565b6040516132eb816136e5602082019460408652606083019061333d565b46604083015203601f1981018352826106d7565b919091613704613842565b60ff61086b5460e01c166110cb5761014081015163ffffffff1661372d4263ffffffff16612a97565b101580613746575b612af55761329a92612aba826136c8565b506137546040820151613bb6565b6001600160a01b0316331415613735565b9a9897959296939094919661378163ffffffff4216978861314c565b97613620613842565b734200000000000000000000000000000000000007330361383357604051636e296e4560e01b81526020816004817342000000000000000000000000000000000000075afa9081156109f3575f91613814575b506001600160a01b036137fc611e5f610869546001600160a01b031690565b91160361380557565b6336a816d960e01b5f5260045ffd5b61382d915060203d6020116109ec576109de81836106d7565b5f6137dd565b63253a6fc960e11b5f5260045ffd5b60026065541461048e576002606555565b9081602091031261048e57516107a4816104d2565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146138aa575b50565b476138b25750565b4790803b1561048e575f90600460405180948193630d0e30db60e41b83525af180156109f357156138a7575f6104f0916106d7565b6107a4929160405161396281611e24602082019460208652805160408401526020810151606084015260a061392c604083015160c06080870152610100860190612e13565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612e46565b5190209161428f565b613976600291612bcd565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146139b857825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9081602091031261048e575190565b9190820180921161316657565b91959495939092935f9681519081815103613ba75781613a62575b50505082613a0d575b50505050565b63ffffffff613a44611e5f83611e5f7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579588614352565b6040805195865233602087015290959190911693a45f808080613a07565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156109f3575f91613b88575b505f5f5b848110613aa8575050506139fe565b613ab2818761300f565b51613ac0575b600101613a99565b90613ad690613acf838861300f565b51906139d6565b90828211613b7957613b106121f0613afe613af1848861300f565b516001600160a01b031690565b613b08848a61300f565b51908a6142e0565b15613ab8579a50613b218b8661300f565b51613b6f613b678d613b52613af1613b4b8c6001600160a01b03165f5261087360205260405f2090565b928961300f565b6001600160a01b03165f5260205260405f2090565b9182546139d6565b905560019a613ab8565b632ddaa83160e11b5f5260045ffd5b613ba1915060203d60201161122c5761121d81836106d7565b5f613a95565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613bc881614729565b1690565b916121f091613c4893604081519101519160405191613bea836106bb565b8252613962613c06602084019246845260408501958652612bcd565b505493604051928391613c2d602084019660208852516060604086015260a085019061333d565b9151606084015251608083015203601f1981018352826106d7565b612df557565b805163ffffffff6101208201511663ffffffff429116106110ad576020820151906002613c84835f5261087260205260405f2090565b5414613cb8576104f0926002613ca56001945f5261087260205260405f2090565b55613cb360025f84846147d6565b6148d8565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110ad576020830151926001613cfe855f5261087260205260405f2090565b5403613d49576001935b6002613d1d825f5261087260205260405f2090565b5414613cb8576104f0945f946002613d41613cb3945f5261087260205260405f2090565b5584846147d6565b5f93613d08565b80519081613d5e5750505f90565b6020012090565b93926042936104f0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613dcc60e0826106d7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613e2460a0826106d7565b519020906040519161190160f01b8352600283015260228201522090614b3d565b9190820391821161316657565b9692610140989563ffffffff9586949285936107a49e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906113c2565b613eb18151614729565b606081019081511561416657610120810190613edd613ed4835163ffffffff1690565b63ffffffff1690565b80421090811561412d575b5061411e57610140810192613f01845163ffffffff1690565b63ffffffff613f32817f000000000000000000000000000000000000000000000000000000000000000016426139d6565b91161161410f5761016082015163ffffffff169182806140cc575b5060408101918251926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016809414806140c3575b15614073576080830151340361406457833b1561048e575f60049460405195868092630d0e30db60e41b825234905af19081156109f3577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad3946140459261404a575b505b5191519260808101519060a081015160c0820151976140246140196101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613e52565b0390a4565b806140585f61405e936106d7565b80610484565b5f613feb565b636452a35d60e01b5f5260045ffd5b92503461406457614045836140be6140af611e5f7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bb6565b60808601519030903390614c29565b613fed565b50341515613f89565b6301e1338010156140f7575b60e0810151156140e8575f613f4d565b63495d907f60e01b5f5260045ffd5b916141099063ffffffff42169061314c565b916140d8565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614138915042613e45565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613ee8565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561048e57565b60ff5f5460081c161561048e576001606555565b6001600160a01b031680156141e057806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561423857806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104f09161428a82606481015b03601f1981018452836106d7565b614c6a565b929091905f915b84518310156142d8576142a9838661300f565b5190818110156142c7575f52602052600160405f205b920191614296565b905f52602052600160405f206142bf565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161431c8160648101611e24565b519082855af1903d5f519083614333575b50505090565b9192509061434857503b15155b5f808061432d565b6001915014614340565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f146144ac5750803b1561048e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156109f357614498575b50610c5a54602081901c6001600160a01b0316916143f96143ef61086a546001600160a01b031690565b9263ffffffff1690565b927342000000000000000000000000000000000000103b1561048e57604051631474f2a960e31b81526001600160a01b039182166004820152921660248301526044820181905263ffffffff92909216606482015260a060848201525f60a482018190529091829060c49082907342000000000000000000000000000000000000105af180156109f35761448a5750565b806140585f6104f0936106d7565b806140585f6144a6936106d7565b5f6143c5565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515806146f7575b156145025750506104f0906144fd61086a546001600160a01b031690565b614da1565b6001600160a01b03614536614529846001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b166146cb576001600160a01b037342000000000000000000000000000000000000105b169061457d611e5f614529856001600160a01b03165f52610c5d60205260405f2090565b1561464557838261458d92614cfb565b6145ac614529836001600160a01b03165f52610c5d60205260405f2090565b906145c061086a546001600160a01b031690565b916145d1610c5a5463ffffffff1690565b823b1561048e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af180156109f35761448a5750565b509161465a61086a546001600160a01b031690565b9261466b610c5a5463ffffffff1690565b93813b1561048e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c48101614634565b6001600160a01b036146f2614529846001600160a01b03165f52610c5c60205260405f2090565b614559565b506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001681146144df565b60a01c61473257565b6379ec0ed760e11b5f5260045ffd5b61474a82612f36565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906147cf82612f36565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161404560808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61483a61012085015163ffffffff1690565b61014085015163ffffffff169160408601519386519561489e61486661016060208b01519a0151613d50565b9960608c01519b604061487c6080830151613d50565b91015190602061488a610728565b9e8f528e015260408d015260608c01614741565b6040519c8d9c8d61474d565b906107a494936080936001600160a01b038093168452602084015216604082015281606082015201906113c2565b9060806148e6910151613bb6565b9160806040830151926148fc6060820151613bb6565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146149ed5750156149d9575b61495791506001600160a01b03851661504d565b01519081511515806149cf575b61496e5750505050565b6001600160a01b0316803b1561048e576149a4935f809460405196879586948593633a5be8cb60e01b85523391600486016148aa565b03925af180156109f3576149bb575b808080613a07565b806140585f6149c9936106d7565b5f6149b3565b50803b1515614964565b6149e69130903390614c29565b5f84614943565b90614a02576149fd923390614c29565b614957565b6149fd92614247565b91614a1583614adc565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614ad4575b50614a58575050565b6138a7915f8060405193614a6d6060866106d7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614ace613047565b91615214565b90505f614a4f565b803b1561048e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614b4a82846151e3565b9390926005851015612f4057614b7394159384614c13575b508315614b88575b50505015151590565b614b7957565b63938a182160e01b5f5260045ffd5b5f935090611e24614bc08594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906113c2565b51915afa614bcc613047565b81614c05575b81614be1575b505f8080614b6a565b9050614bfe630b135d3f60e11b91602080825183010191016139c7565b145f614bd8565b905060208151101590614bd2565b6001600160a01b0384811691161493505f614b62565b9091926001600160a01b036104f09481604051956323b872dd60e01b602088015216602486015216604484015260648301526064825261428a6084836106d7565b906001600160a01b03614cc592165f8060405193614c896040866106d7565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af1614ace613047565b80518015918215614cda575b50501561048e57565b60208181019350918101031261048e5751614cf481611a1c565b5f80614cd1565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109f3576104f09461428a92614d53925f91614d82575b506139d6565b60405163095ea7b360e01b60208201526001600160a01b0390941660248501526044840152826064810161427c565b614d9b915060203d60201161122c5761121d81836106d7565b5f614d4d565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614e02838584614cfb565b6040516332dd704760e21b815291602083600481885afa9283156109f3575f93615023575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa9283156109f3575f93615002575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614e9957505050505050565b83811115614ffc57835b8515614f5857863b1561048e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af19283156109f357614f3e93614f44575b50613e45565b80614e8d565b806140585f614f52936106d7565b5f614f38565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af19283156109f357614f3e93614fce5750613e45565b614fee9060203d8111614ff5575b614fe681836106d7565b810190615129565b505f614f38565b503d614fdc565b80614ea3565b61501c91935060203d60201161122c5761121d81836106d7565b915f614e67565b6001600160a01b039193506150469060203d6020116109ec576109de81836106d7565b9290614e27565b906001600160a01b038216803b15801561511a575b156150e657506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561048e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109f3576104f0936150d2575b506151bb565b806140585f6150e0936106d7565b5f6150cc565b6104f092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614247565b5061512481615149565b615062565b9081602091031261048e575167ffffffffffffffff8116810361048e5790565b803b61515481610737565b9061516260405192836106d7565b8082525f6020830180943c5190516001600160e81b0319811691906003821061519c575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80615186565b81471061048e575f8080936001600160a01b038294165af16151db613047565b501561048e57565b9060418151145f1461520b576113be91602082015190606060408401519301515f1a9061523f565b50505f90600290565b9192501561523057815115615227575090565b3b1561048e5790565b50805190811561048e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a084116152af576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156109f3575f516001600160a01b038116156152a757905f90565b505f90600190565b505050505f9060039056fea2646970667358221220ebd6aa2773864b79f948f5f3fb6968722fb23691a8a3194be02d787f81be865464736f6c634300081e0033"}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"EMPTY_MSG_BYTES","inputs":[],"outputs":[{"name":"","type":"bytes","internalType":"bytes"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_RELAYER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"EMPTY_REPAYMENT_CHAIN_ID","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"INFINITE_FILL_DEADLINE","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_EXCLUSIVITY_PERIOD_SECONDS","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"MAX_TRANSFER_SIZE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MESSENGER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"OFT_DST_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"OFT_FEE_CAP","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"UPDATE_BYTES32_DEPOSIT_DETAILS_HASH","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"__OvmSpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_l2Eth","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"__SpokePool_init","inputs":[{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"cctpTokenMessenger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ITokenMessenger"}],"stateMutability":"view"},{"type":"function","name":"cctpV2","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"chainId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"claimRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"crossDomainAdmin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"deposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositDeprecated_5947912356","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositFor","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"uint256","internalType":"uint256"},{"name":"","type":"int64","internalType":"int64"},{"name":"","type":"uint32","internalType":"uint32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositNow","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositQuoteTimeBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"depositV3","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"depositV3Now","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"fillDeadlineOffset","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"emergencyDeleteRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"executeExternalCall","inputs":[{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"returnData","type":"bytes","internalType":"bytes"}],"stateMutability":"nonpayable"},{"type":"function","name":"executeRelayerRefundLeaf","inputs":[{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"relayerRefundLeaf","type":"tuple","internalType":"struct SpokePoolInterface.RelayerRefundLeaf","components":[{"name":"amountToReturn","type":"uint256","internalType":"uint256"},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","internalType":"uint256[]"},{"name":"leafId","type":"uint32","internalType":"uint32"},{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddresses","type":"address[]","internalType":"address[]"}]},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"executeSlowRelayLeaf","inputs":[{"name":"slowFillLeaf","type":"tuple","internalType":"struct V3SpokePoolInterface.V3SlowFill","components":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"chainId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"}]},{"name":"rootBundleId","type":"uint32","internalType":"uint32"},{"name":"proof","type":"bytes32[]","internalType":"bytes32[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fill","inputs":[{"name":"orderId","type":"bytes32","internalType":"bytes32"},{"name":"originData","type":"bytes","internalType":"bytes"},{"name":"fillerData","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillDeadlineBuffer","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"fillRelay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillRelayWithUpdatedDeposit","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"},{"name":"repaymentAddress","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fillStatuses","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"fillV3Relay","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayDataLegacy","components":[{"name":"depositor","type":"address","internalType":"address"},{"name":"recipient","type":"address","internalType":"address"},{"name":"exclusiveRelayer","type":"address","internalType":"address"},{"name":"inputToken","type":"address","internalType":"address"},{"name":"outputToken","type":"address","internalType":"address"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]},{"name":"repaymentChainId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getCurrentTime","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"},{"name":"refundAddress","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getUnsafeDepositId","inputs":[{"name":"msgSender","type":"address","internalType":"address"},{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getV3RelayHash","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"l2Eth","type":"address","internalType":"address"},{"name":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_hubPool","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"l1Gas","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"l2Eth","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"multicall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"bytes[]","internalType":"bytes[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"numberOfDeposits","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"oftMessengers","inputs":[{"name":"l2TokenAddress","type":"address","internalType":"address"}],"outputs":[{"name":"l2OftMessenger","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pauseDeposits","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pauseFills","inputs":[{"name":"pause","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pausedDeposits","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"pausedFills","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"recipientCircleDomainId","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"relayRootBundle","inputs":[{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"relayerRefund","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"remoteL1Tokens","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"requestSlowFill","inputs":[{"name":"relayData","type":"tuple","internalType":"struct V3SpokePoolInterface.V3RelayData","components":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"originChainId","type":"uint256","internalType":"uint256"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"rootBundles","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"slowRelayRoot","type":"bytes32","internalType":"bytes32"},{"name":"relayerRefundRoot","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"setCrossDomainAdmin","inputs":[{"name":"newCrossDomainAdmin","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setL1GasLimit","inputs":[{"name":"newl1Gas","type":"uint32","internalType":"uint32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setOftMessenger","inputs":[{"name":"token","type":"address","internalType":"address"},{"name":"messenger","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRemoteL1Token","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"l1Token","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenBridge","inputs":[{"name":"l2Token","type":"address","internalType":"address"},{"name":"tokenBridge","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"speedUpV3Deposit","inputs":[{"name":"depositor","type":"address","internalType":"address"},{"name":"depositId","type":"uint256","internalType":"uint256"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"depositorSignature","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"tokenBridges","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"tryMulticall","inputs":[{"name":"data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"results","type":"tuple[]","internalType":"struct MultiCallerUpgradeable.Result[]","components":[{"name":"success","type":"bool","internalType":"bool"},{"name":"returnData","type":"bytes","internalType":"bytes"}]}],"stateMutability":"nonpayable"},{"type":"function","name":"unsafeDeposit","inputs":[{"name":"depositor","type":"bytes32","internalType":"bytes32"},{"name":"recipient","type":"bytes32","internalType":"bytes32"},{"name":"inputToken","type":"bytes32","internalType":"bytes32"},{"name":"outputToken","type":"bytes32","internalType":"bytes32"},{"name":"inputAmount","type":"uint256","internalType":"uint256"},{"name":"outputAmount","type":"uint256","internalType":"uint256"},{"name":"destinationChainId","type":"uint256","internalType":"uint256"},{"name":"exclusiveRelayer","type":"bytes32","internalType":"bytes32"},{"name":"depositNonce","type":"uint256","internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","internalType":"uint32"},{"name":"fillDeadline","type":"uint32","internalType":"uint32"},{"name":"exclusivityParameter","type":"uint32","internalType":"uint32"},{"name":"message","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"usdcToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"withdrawalRecipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"wrappedNativeToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract WETH9Interface"}],"stateMutability":"view"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AdminExternalCallExecuted","inputs":[{"name":"target","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ClaimedRelayerRefund","inputs":[{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"refundAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"caller","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"EmergencyDeletedRootBundle","inputs":[{"name":"rootBundleId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"EnabledDepositRoute","inputs":[{"name":"originToken","type":"address","indexed":true,"internalType":"address"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"enabled","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"ExecutedRelayerRefundRoot","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"refundAmounts","type":"uint256[]","indexed":false,"internalType":"uint256[]"},{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"address","indexed":false,"internalType":"address"},{"name":"refundAddresses","type":"address[]","indexed":false,"internalType":"address[]"},{"name":"deferredRefunds","type":"bool","indexed":false,"internalType":"bool"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"FilledRelay","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayer","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.V3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"bytes32","internalType":"bytes32"},{"name":"updatedMessageHash","type":"bytes32","internalType":"bytes32"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FilledV3Relay","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"repaymentChainId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"relayer","type":"address","indexed":true,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"relayExecutionInfo","type":"tuple","indexed":false,"internalType":"struct V3SpokePoolInterface.LegacyV3RelayExecutionEventInfo","components":[{"name":"updatedRecipient","type":"address","internalType":"address"},{"name":"updatedMessage","type":"bytes","internalType":"bytes"},{"name":"updatedOutputAmount","type":"uint256","internalType":"uint256"},{"name":"fillType","type":"uint8","internalType":"enum V3SpokePoolInterface.FillType"}]}],"anonymous":false},{"type":"event","name":"FundsDeposited","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"PausedDeposits","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PausedFills","inputs":[{"name":"isPaused","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"RelayedRootBundle","inputs":[{"name":"rootBundleId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"relayerRefundRoot","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"slowRelayRoot","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSlowFill","inputs":[{"name":"inputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"outputToken","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"depositor","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"recipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"messageHash","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpDeposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositor","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"updatedRecipient","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedSpeedUpV3Deposit","inputs":[{"name":"updatedOutputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"updatedRecipient","type":"address","indexed":false,"internalType":"address"},{"name":"updatedMessage","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"depositorSignature","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"RequestedV3SlowFill","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"originChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"depositor","type":"address","indexed":false,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"SetL1Gas","inputs":[{"name":"newL1Gas","type":"uint32","indexed":true,"internalType":"uint32"}],"anonymous":false},{"type":"event","name":"SetL2TokenBridge","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"tokenBridge","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetOFTMessenger","inputs":[{"name":"token","type":"address","indexed":true,"internalType":"address"},{"name":"messenger","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetRemoteL1Token","inputs":[{"name":"l2Token","type":"address","indexed":true,"internalType":"address"},{"name":"l1Token","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetWithdrawalRecipient","inputs":[{"name":"newWithdrawalRecipient","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SetXDomainAdmin","inputs":[{"name":"newAdmin","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokensBridged","inputs":[{"name":"amountToReturn","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"chainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"leafId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"l2TokenAddress","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"caller","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"V3FundsDeposited","inputs":[{"name":"inputToken","type":"address","indexed":false,"internalType":"address"},{"name":"outputToken","type":"address","indexed":false,"internalType":"address"},{"name":"inputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"outputAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"destinationChainId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"depositId","type":"uint32","indexed":true,"internalType":"uint32"},{"name":"quoteTimestamp","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"fillDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"exclusivityDeadline","type":"uint32","indexed":false,"internalType":"uint32"},{"name":"depositor","type":"address","indexed":true,"internalType":"address"},{"name":"recipient","type":"address","indexed":false,"internalType":"address"},{"name":"exclusiveRelayer","type":"address","indexed":false,"internalType":"address"},{"name":"message","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DepositsArePaused","inputs":[]},{"type":"error","name":"DisabledRoute","inputs":[]},{"type":"error","name":"ExpiredFillDeadline","inputs":[]},{"type":"error","name":"ExternalCallExecutionFailed","inputs":[]},{"type":"error","name":"FillsArePaused","inputs":[]},{"type":"error","name":"InsufficientSpokePoolBalanceToExecuteLeaf","inputs":[]},{"type":"error","name":"InvalidBytes32","inputs":[]},{"type":"error","name":"InvalidChainId","inputs":[]},{"type":"error","name":"InvalidCrossDomainAdmin","inputs":[]},{"type":"error","name":"InvalidDepositorSignature","inputs":[]},{"type":"error","name":"InvalidExclusiveRelayer","inputs":[]},{"type":"error","name":"InvalidFillDeadline","inputs":[]},{"type":"error","name":"InvalidMerkleLeaf","inputs":[]},{"type":"error","name":"InvalidMerkleProof","inputs":[]},{"type":"error","name":"InvalidOutputToken","inputs":[]},{"type":"error","name":"InvalidPayoutAdjustmentPct","inputs":[]},{"type":"error","name":"InvalidQuoteTimestamp","inputs":[]},{"type":"error","name":"InvalidSlowFillRequest","inputs":[]},{"type":"error","name":"InvalidWithdrawalRecipient","inputs":[]},{"type":"error","name":"LowLevelCallFailed","inputs":[{"name":"data","type":"bytes","internalType":"bytes"}]},{"type":"error","name":"MessageTooShort","inputs":[]},{"type":"error","name":"MsgValueDoesNotMatchInputAmount","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotCrossChainCall","inputs":[]},{"type":"error","name":"NotCrossDomainAdmin","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"OFTFeeUnderpaid","inputs":[]},{"type":"error","name":"OFTTokenMismatch","inputs":[]},{"type":"error","name":"OftFeeCapExceeded","inputs":[]},{"type":"error","name":"OftIncorrectAmountReceivedLD","inputs":[]},{"type":"error","name":"OftIncorrectAmountSentLD","inputs":[]},{"type":"error","name":"OftInsufficientBalanceForFee","inputs":[]},{"type":"error","name":"OftLzFeeNotZero","inputs":[]},{"type":"error","name":"RelayFilled","inputs":[]},{"type":"error","name":"RemovedFunction","inputs":[]},{"type":"error","name":"SafeERC20FailedOperation","inputs":[{"name":"token","type":"address","internalType":"address"}]},{"type":"error","name":"WrongERC7683OrderId","inputs":[]},{"type":"error","name":"ZeroAddressTarget","inputs":[]}],"bytecode":"0x6101c0806040523461026f5760208161560480380380916100208285610273565b83398101031261026f57516001600160a01b0381169081900361026f57306080525f60c0525f60a05260e052610e1061010052617e90610120525f5460ff8160081c1661026f5760ff80821603610235575b505f610160525f610180525f610140525f80604051602081019063011a412160e61b8252600481526100a5602482610273565b5190825afa3d1561022e573d6001600160401b03811161021a57604051906100d7601f8201601f191660200183610273565b81523d5f602083013e5b8161020e575b816101d8575b506101a05260405161536d908161029782396080518181816111010152818161160e0152611765015260a0518161193f015260c051816119f8015260e05181818161088a0152818161387a01528181613f5d015281816143a30152818161494f0152818161507401526150f70152610100518181816118de015261413c0152610120518181816104ae0152613f090152610140518181816119b801528181614ec80152614f7001526101605181818161082d0152818161473d0152614daf015261018051818181612008015281816144ea0152614dd801526101a051818181611c2f0152614e6e0152f35b90506020815191015190602081106101fd575b506001600160a01b031615155f6100ed565b5f199060200360031b1b165f6101eb565b805160201491506100e7565b634e487b7160e01b5f52604160045260245ffd5b60606100e1565b60ff90811916175f557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f610072565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761021a5760405256fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461047f5780630c5d5f731461047a5780630cb84d9a146104755780630eaac9f0146104705780631186ec331461046b57806311eac8551461046657806315348e44146103f857806317fcb39b1461046157806319c1648c1461045c5780631b3d5559146104575780631fab657c1461045257806329cb924d1461044d5780632e378115146104485780632e63e59a146104435780633659cfe61461043e578063431023b814610439578063437b911614610434578063490e49ef1461042f578063493a4f841461042a5780634f1ef286146104255780635285e0581461042057806352d1902d1461041b578063541f4f1414610416578063577f51f81461041157806357f6dcb81461040c5780636068d6cb1461040757806361a04d3014610402578063670fa8ac146103fd5780636bbbcd2e146103f85780636e400983146103f35780636fd5c10e146103ee578063738b62e5146103e95780637659f9e0146103e4578063766e0703146103df578063775c0d03146103da5780637aef642c146103d55780637b939232146103d05780637ef413e1146103cb57806382e2c43f146103c65780638a7860ce146103c15780638b15788e146103bc578063927ede2d146103b75780639748cf7c146103b257806397943aa9146103ad578063979f2bc2146103a8578063983cb80f146103a357806399cc29681461039e5780639a8a059214610399578063a1244c6714610394578063a18a096e1461038f578063ac9650d81461038a578063ad5425c614610385578063adb5a6a614610335578063b27a430014610380578063b370b7f51461037b578063b4c0d7ab14610376578063babb6aac14610371578063bf10268d1461036c578063c35c83fc14610367578063ceb4c98714610362578063d7e1583a1461035d578063dda5211314610358578063ddd224f114610353578063de7eba781461034e578063deff4b2414610349578063e322921114610344578063ea86bd461461033f578063ee2a53f81461033a578063f79f29ed14610335578063fbbba9ac146103305763fc8a584f0361000e57612caf565b612c2b565b6125e8565b612bed565b612b49565b612b20565b612a2e565b6129f7565b6129ce565b6129a8565b612972565b612874565b612849565b6127c5565b6126e6565b6126b7565b612675565b61262f565b612577565b6124d8565b612383565b61235c565b612342565b6122ac565b612196565b6120ba565b61202c565b611fe9565b611fbb565b611f4a565b611ed2565b611db4565b611d7e565b611ce6565b611c54565b611c18565b611bf4565b611acd565b611a26565b6119dc565b61199c565b610851565b611962565b611928565b611902565b6118c2565b611845565b6117b5565b61174b565b611724565b6115cb565b611543565b611525565b611458565b611233565b6110da565b610ee1565b610d8e565b610d65565b610c5d565b610b3b565b6108d3565b61086b565b61080e565b6107a7565b6105da565b610543565b6104fd565b610492565b5f91031261048e57565b5f80fd5b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361048e57565b60e435906104f0826104d2565b565b35906104f0826104d2565b3461048e57602036600319011261048e576001600160a01b03600435610522816104d2565b165f52610c5d60205260206001600160a01b0360405f205416604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435610568816104d2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b63ffffffff81160361048e57565b61010435906104f082610589565b61012435906104f082610589565b61014435906104f082610589565b61016435906104f082610589565b35906104f082610589565b3461048e57602036600319011261048e5763ffffffff6004356105fc81610589565b610604613787565b61060c61383f565b168063ffffffff19610c5a541617610c5a557fe486a5c4bd7b36eabbfe274c99b39130277417be8d2209b4dae04c4fba64ee3a5f80a26001606555005b608435908160070b820361048e57565b60a435908160070b820361048e57565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff82111761069957604052565b610669565b6101a0810190811067ffffffffffffffff82111761069957604052565b6060810190811067ffffffffffffffff82111761069957604052565b90601f8019910116810190811067ffffffffffffffff82111761069957604052565b604051906104f060c0836106d7565b604051906104f0610180836106d7565b604051906104f06101a0836106d7565b604051906104f06080836106d7565b67ffffffffffffffff811161069957601f01601f191660200190565b92919261075f82610737565b9161076d60405193846106d7565b82948184528183011161048e578281602093845f960137010152565b9080601f8301121561048e578160206107a493359101610753565b90565b61010036600319011261048e576107bf6004356104d2565b6107ca6024356104d2565b6107d2610649565b506107de60a435610589565b60c43567ffffffffffffffff811161048e576107fe903690600401610789565b506332ed1ba560e21b5f5260045ffd5b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e5760206040515f8152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261048e576004356108c6816104d2565b906024356107a4816104d2565b3461048e576108e1366108ae565b6108e9613787565b6108f161383f565b6001600160a01b038116918215158061098a575b61097b5761094c6001600160a01b0392610931836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa9081156109f3575f916109c4575b506001600160a01b0380831691161415610905565b6109e6915060203d6020116109ec575b6109de81836106d7565b810190613850565b5f6109af565b503d6109d4565b613865565b67ffffffffffffffff81116106995760051b60200190565b9080601f8301121561048e578135610a27816109f8565b92610a3560405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610a5d5750505090565b8135815260209182019101610a50565b9080601f8301121561048e578135610a84816109f8565b92610a9260405194856106d7565b81845260208085019260051b82010192831161048e57602001905b828210610aba5750505090565b602080918335610ac9816104d2565b815201910190610aad565b929190610ae0816109f8565b93610aee60405195866106d7565b602085838152019160051b810192831161048e57905b828210610b1057505050565b8135815260209182019101610b04565b9080601f8301121561048e578160206107a493359101610ad4565b606036600319011261048e57600435610b5381610589565b6024359067ffffffffffffffff821161048e5760c0600319833603011261048e57610b7c6106f9565b918060040135835260248101356020840152604481013567ffffffffffffffff811161048e57610bb29060043691840101610a10565b6040840152610bc3606482016105cf565b6060840152610bd4608482016104f2565b608084015260a48101359067ffffffffffffffff821161048e576004610bfd9236920101610a6d565b60a08301526044359167ffffffffffffffff831161048e57610c26610018933690600401610b20565b91612cdf565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020808501948460051b01011161048e57565b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e5780360390606060031983011261048e57602435610c9c81610589565b60443567ffffffffffffffff811161048e57610cbc903690600401610c2c565b919093610cc761383f565b600484013590610182190181121561048e57610d5b94610d5693610cf26004610d4f94880101612ecd565b95610d08610d036080890151613bb3565b613870565b6044610d13886136c5565b91013560208801519061016089015192610d2b6106f9565b998a5260208a01526040890152606088015260808701525f60a08701523691610ad4565b9083613bc9565b613c4b565b6100186001606555565b3461048e575f36600319011261048e576020604051428152f35b908161018091031261048e5790565b3461048e57604036600319011261048e5760043567ffffffffffffffff811161048e57610dbf903690600401610d7f565b602435610dcb82612ed8565b6001600160a01b031691610de160208201612ed8565b6001600160a01b031690610df760408201612ed8565b6001600160a01b031690610e0d60608201612ed8565b6001600160a01b0316610e2260808301612ed8565b6001600160a01b031660e083013560c084013560a0850135610e476101008701612ee2565b93610e556101208801612ee2565b95610e636101408901612ee2565b976101608101610e7291612eec565b99909a610e7d610708565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610ecf92610753565b610160830152610018913391906136f6565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57610f12903690600401610d7f565b610f1a61383f565b60ff61086b5460e01c166110cb5763ffffffff421690610140810190610f5283610f4384612ee2565b63ffffffff9182169116101590565b6110bc5761012081019263ffffffff610f6a85612ee2565b16106110ad57610f82610f7d3683612892565b6136c5565b90610f96825f5261087260205260405f2090565b5461109f57610fd8610fd27f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b606081013561109260808301359260a08101359060c081013560e08201359761100f6110096101008501359b612ee2565b91612ee2565b60408401359184359361103e611039611032602089013598610160810190612eec565b3691610753565b613d4d565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461048e57602036600319011261048e576004356110f7816104d2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e57611160613787565b61116861269c565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561119c575061001890614b19565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611202575b506111cd575f80fd5b610018926111fd7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612f42565b614a48565b61122591935060203d60201161122c575b61121d81836106d7565b8101906139c4565b915f6111c4565b503d611213565b3461048e57608036600319011261048e5760043561125081610589565b6024359061125d826104d2565b604435611269816104d2565b60643591611276836104d2565b60ff5f5460081c161561048e576112be90624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040908151916112ce81846106d7565b600983526020808401916820a1a927a9a996ab1960b91b83526112f3815191826106d7565b600581520194640312e302e360dc1b865260ff5f5460081c161561048e57610018956005611342936113479651902091209061047f5561048055611335614171565b61133d614180565b614194565b6141ec565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff00000000610c5a549260201b16911617610c5a55565b602060031982011261048e576004359067ffffffffffffffff821161048e576113be91600401610c2c565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061141857505050505090565b9091929394602080611449600193603f198682030187526040838b51805115158452015191818582015201906113c2565b97019301930191939290611409565b3461048e5761146636611393565b61146f816109f8565b9161147d60405193846106d7565b818352601f1961148c836109f8565b015f5b8181106115015750505f5b8281106114b357604051806114af86826113e6565b0390f35b806114fb6114c36001938761300c565b515f806114d1858989613020565b906114e160405180938193613037565b0390305af4906114ef613044565b60208201529015159052565b0161149a565b6020906040516115108161067d565b5f81526060838201528282880101520161148f565b3461048e575f36600319011261048e5760206040516301e133808152f35b3461048e57604036600319011261048e57602435600435611562613787565b61156a61383f565b61086c54680100000000000000008110156106995780600163ffffffff920161086c558361159782612bca565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261048e576004356115e3816104d2565b60243567ffffffffffffffff811161048e57611603903690600401610789565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461048e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361048e5761166d613787565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156116a1576100189150614b19565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611703575b506116d1575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361048e5761001891600191614a48565b61171d91925060203d60201161122c5761121d81836106d7565b905f6116c8565b3461048e575f36600319011261048e5760206001600160a01b036108695416604051908152f35b3461048e575f36600319011261048e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361048e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261048e576117cd6004356104d2565b6117d86024356104d2565b6117e36044356104d2565b6117eb610659565b506117f760c435610589565b60e43567ffffffffffffffff811161048e576107fe903690600401610789565b9181601f8401121561048e5782359167ffffffffffffffff831161048e576020838186019501011161048e57565b3461048e5760c036600319011261048e57600435611862816104d2565b60243560443591606435611875816104d2565b60843567ffffffffffffffff811161048e57611895903690600401611817565b9160a4359567ffffffffffffffff871161048e576118ba610018973690600401611817565b9690956130c6565b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060ff61086b5460e81c166040519015158152f35b3461048e575f36600319011261048e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461048e575f36600319011261048e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e575f36600319011261048e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361048e57565b3461048e57602036600319011261048e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae492196020600435611a6681611a1c565b611a6e613787565b611a7661383f565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206107a49281815201906113c2565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611afe903690600401611817565b611b06613787565b611b0e61383f565b810160408282031261048e57813591611b26836104d2565b60208101359167ffffffffffffffff831161048e576001600160a01b0392611b4e9201610789565b91168015611be5576004825110611bd6575f8083516020850182855af190611b74613044565b9115611bc7577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611bae6114af9460405191829182611abc565b0390a2611bbb6001606555565b60405191829182611abc565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461048e575f36600319011261048e57602063ffffffff610c5a5416604051908152f35b3461048e575f36600319011261048e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261048e57600435611c6d816104d2565b602435611c79816104d2565b60443591611c86836104d2565b606435611c92816104d2565b60843560e43560c43560a435611ca7836104d2565b611caf610597565b93611cb86105a5565b95610144359967ffffffffffffffff8b1161048e57611cde6100189b3690600401611817565b9a9099613168565b61018036600319011261048e57600435611cff816104d2565b602435611d0b816104d2565b60443591611d18836104d2565b606435611d24816104d2565b60843560a43560c435611d356104e3565b90611d3e610597565b92611d476105a5565b94611d506105b3565b96610164359a67ffffffffffffffff8c1161048e57611d766100189c3690600401611817565b9b909a61318a565b3461048e57606036600319011261048e576020611dac600435611da0816104d2565b602435604435916132b0565b604051908152f35b3461048e57606036600319011261048e5760043560243567ffffffffffffffff811161048e57611de8903690600401611817565b9060443567ffffffffffffffff811161048e57611e09903690600401611817565b9190936040516020810190611e3281611e24468988876132ee565b03601f1981018352826106d7565b51902003611ec3575f93611e4d828695611e5694019061294c565b9281019061330b565b51611e8d611e6b335b6001600160a01b031690565b91611e2460405193849260208401966337bfd2c960e21b8852602485016133d6565b5190305af4611e9a613044565b9015611ea257005b60405163b8fe37a760e01b8152908190611ebf9060048301611abc565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461048e57602036600319011261048e57600435611eee613787565b611ef661383f565b611eff81612bca565b611f37576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261048e5760443560243560043560643560843560a4356101043560e43560c435611f7b6105a5565b93611f846105b3565b95611f8d6105c1565b97610184359b67ffffffffffffffff8d1161048e57611fb36100189d3690600401611817565b9c909b6133f8565b3461048e575f36600319011261048e5760206040517342000000000000000000000000000000000000078152f35b3461048e575f36600319011261048e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461048e5760e036600319011261048e5760043567ffffffffffffffff811161048e5761205d903690600401610d7f565b602435604435916064356084359060a43567ffffffffffffffff811161048e5761208b903690600401611817565b92909160c4359667ffffffffffffffff881161048e576120b2610018983690600401611817565b979096613470565b3461048e57606036600319011261048e576004356120d781610589565b602435906120e4826104d2565b604435906120f1826104d2565b60ff5f5460081c161561048e576121259063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604080519261213482856106d7565b600984526020808501926820a1a927a9a996ab1960b91b8452612159815191826106d7565b6005815201640312e302e360dc1b815260ff5f5460081c161561048e576005611342936100189651902091209061047f5561048055611335614171565b3461048e57608036600319011261048e576004356121b3816104d2565b612224602435916121c383610589565b6044356121cf816104d2565b606435906121dc826104d2565b5f549461220a60ff600888901c16156121f4565b1590565b8097819861229e575b811561227e575b50612f42565b8561221b600160ff195f5416175f55565b61226757612f49565b61222a57005b61223861ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b61227961010061ff00195f5416175f55565b612f49565b303b15915081612290575b505f612204565b60ff1660011490505f612289565b600160ff82161091506121fd565b3461048e57602036600319011261048e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e60206004356122ec81611a1c565b6122f4613787565b6122fc61383f565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461048e575f36600319011261048e576020604051468152f35b3461048e575f36600319011261048e57602063ffffffff61086b5460c01c16604051908152f35b3461048e57604036600319011261048e576004356024356123a382614764565b6001600160a01b03821691825f526108736020526123d460405f20336001600160a01b03165f5260205260405f2090565b5492831561246a5761241d5f916123ea84614764565b61240733916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561243a8361242b83613bb3565b61243485613bb3565b90614244565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b8383106124ab57505050505090565b90919293946020806124c9600193603f1986820301875289516113c2565b9701930193019193929061249c565b3461048e576124e636611393565b906124f08261355e565b915f5b81811061250857604051806114af8682612479565b5f80612515838587613020565b9061252560405180938193613037565b0390305af4612532613044565b90156125585790600191612546828761300c565b52612551818661300c565b50016124f3565b604481511061048e5780602480600461048e94015183010191016135a7565b61018036600319011261048e576044356024356004356064356084356101043560e43560c43560a4356125a984610589565b6125b16105a5565b946125ba6105b3565b96610164359a67ffffffffffffffff8c1161048e576125e06100189c3690600401611817565b9b909a61360a565b3461048e5760206126266001600160a01b03612603366108ae565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461048e57602036600319011261048e576001600160a01b03600435612654816104d2565b165f52610c5c60205260206001600160a01b0360405f205416604051908152f35b3461048e575f36600319011261048e5760206001600160a01b0361086a5416604051908152f35b604051906126ab6020836106d7565b5f808352366020840137565b3461048e575f36600319011261048e576114af6126d261269c565b6040519182916020835260208301906113c2565b3461048e5760c036600319011261048e5760043560243560443560643560843567ffffffffffffffff811161048e57612723903690600401611817565b60a4939193359067ffffffffffffffff821161048e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c269461276c6127bb933690600401611817565b92909161277761383f565b6127808a614764565b6127af898b8989612792368888610753565b9261279e368b8b610753565b946001600160a01b03469216613d62565b60405196879687613093565b0390a36001606555005b3461048e576001600160a01b03806127dc366108ae565b92906127e6613787565b6127ee61383f565b1691825f52610c5d60205261281c8160405f20906001600160a01b03166001600160a01b0319825416179055565b16907fcb84c2022106a6f2b6f805d446f32fbfd2a528474364fa755f37dac1c0c1b6c85f80a36001606555005b3461048e57602036600319011261048e576004355f52610872602052602060405f2054604051908152f35b3461048e575f36600319011261048e57602060405163ffffffff8152f35b9190916101808184031261048e576128a8610708565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e085015261010082013561010085015261290c61012083016105cf565b61012085015261291f61014083016105cf565b61014085015261016082013567ffffffffffffffff811161048e576129449201610789565b610160830152565b9060208282031261048e57813567ffffffffffffffff811161048e576107a49201612892565b3461048e57602036600319011261048e5760043567ffffffffffffffff811161048e57611dac610f7d6020923690600401612892565b3461048e575f36600319011261048e57602060ff61086b5460e01c166040519015158152f35b3461048e575f36600319011261048e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461048e57602036600319011261048e57612a27600435612a17816104d2565b612a1f613787565b61133d61383f565b6001606555005b3461048e57606036600319011261048e5760043567ffffffffffffffff811161048e57612a5f903690600401612892565b6024359060443590612a6f61383f565b60ff61086b5460e01c166110cb5761014081015163ffffffff16612a9e4263ffffffff165b9163ffffffff1690565b101580612b01575b612af257610d5b92612ab7826136c5565b60c083015160208401519061016085015192612ad16106f9565b958652602086015260408501526060840152608083015260a0820152613cc4565b630c3a9b9d60e41b5f5260045ffd5b50612b0f6040820151613bb3565b6001600160a01b0316331415612aa6565b3461048e575f36600319011261048e5760206001600160a01b03610c5a54821c16604051908152f35b61016036600319011261048e576044356024356004356064356101043560e43560c43560a435608435612b7b85610589565b6101243595612b8987610589565b610144359967ffffffffffffffff8b1161048e57612bae6100189b3690600401611817565b9a9099613762565b634e487b7160e01b5f52603260045260245ffd5b61086c54811015612be85761086c5f52600360205f20910201905f90565b612bb6565b3461048e57602036600319011261048e5760043561086c5481101561048e57612c17604091612bca565b506001815491015482519182526020820152f35b3461048e576001600160a01b0380612c42366108ae565b9290612c4c613787565b612c5461383f565b1691825f52610c5c602052612c828160405f20906001600160a01b03166001600160a01b0319825416179055565b16907ff3dc137d2246f9b8abd0bb821e185ba01122c9b3ea3745ffca6208037674d6705f80a36001606555005b3461048e57602036600319011261048e57612a27600435612ccf816104d2565b612cd7613787565b61134261383f565b9190612ce961383f565b60808101612d01610d0382516001600160a01b031690565b602082019283514603612e01576121f0612d2991846001612d2189612bca565b5001546138e4565b612df25763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612de56060850195612d73612d6d885163ffffffff1690565b89613968565b8051958051612dcf612dc1612db0604085019a8c612d978d51915163ffffffff1690565b8a516001600160a01b03169160a08901978851946139e0565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487612e7f565b0390a46104f06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b90602080835192838152019201905f5b818110612e2d5750505090565b8251845260209384019390920191600101612e20565b90602080835192838152019201905f5b818110612e605750505090565b82516001600160a01b0316845260209384019390920191600101612e53565b949695919260a0946001600160a01b03612eab8196612ebf958a5260c060208b015260c08a0190612e10565b921660408801528682036060880152612e43565b951515608085015216910152565b6107a4903690612892565b356107a4816104d2565b356107a481610589565b903590601e198136030182121561048e570180359067ffffffffffffffff821161048e5760200191813603831361048e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612f3d57565b612f1f565b1561048e57565b9291909260ff5f5460081c161561048e57612f9590624c4b4063ffffffff19610c5a541617610c5a5563ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b604090815191612fa581846106d7565b600983526020808401916820a1a927a9a996ab1960b91b8352612fca815191826106d7565b600581520194640312e302e360dc1b865260ff5f5460081c161561048e576104f0956005611342936113479651902091209061047f5561048055611335614171565b8051821015612be85760209160051b010190565b90821015612be8576113be9160051b810190612eec565b908092918237015f815290565b3d1561306e573d9061305582610737565b9161306360405193846106d7565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b949290936130b8926107a4979587526020870152608060408701526080860191613073565b926060818503910152613073565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586613130959a9499166131228a8c8361310d368888610753565b91613119368b8b610753565b9346908d613d62565b604051978897169a87613093565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff821161316357565b613135565b96949290916104f09b9a999896949261318863ffffffff42169889613149565b985b9593919b999897969492909b61319e61383f565b61086b5460ff8160e81c166132a15760c01c63ffffffff16966131c0886136ae565b6131e79063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6131ef610718565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190613265919063ffffffff169052565b63ffffffff1661014085015263ffffffff16610160840152369061328892610753565b61018082015261329790613ea4565b6104f06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b16845260348301526054820152605481526132e86074826106d7565b51902090565b93929160209161330691604087526040870191613073565b930152565b9081602091031261048e57604051906020820182811067ffffffffffffffff8211176106995760405235815290565b906101806101606107a493805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501526133b461012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906113c2565b6133ee6040929594939560608352606083019061333a565b9460208201520152565b9c9a999897969594939291909661340d61383f565b60ff61086b5460e81c166132a157613426908e336132b0565b96604051809e6134358261069e565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152613265565b97929095969493919661348161383f565b60ff61086b5460e01c166110cb5761349c6101408a01612ee2565b6134ab4263ffffffff16612a94565b10158061353f575b612af2576132979861353461353a976134cf610f7d3685612892565b996134d86106f9565b9a6134e33686612892565b8c5260208c01528560408c01528660608c015261350136868b610753565b60808c015260a08b015261352c6135188435613bb3565b9860e0610100860135950135953691610753565b963691610753565b95613d62565b613cc4565b5061354d60408a0135613bb3565b6001600160a01b03163314156134b3565b90613568826109f8565b61357560405191826106d7565b8281528092613586601f19916109f8565b01905f5b82811061359657505050565b80606060208093850101520161358a565b60208183031261048e5780519067ffffffffffffffff821161048e570181601f8201121561048e578051906135db82610737565b926135e960405194856106d7565b8284526020838301011161048e57815f9260208093018386015e8301015290565b9b9998979694929095939161361d61383f565b61086b5460ff8160e81c166132a15760c01c63ffffffff169661363f886136ae565b6136669063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61366e610718565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152613265565b63ffffffff1663ffffffff81146131635760010190565b6040516132e8816136e2602082019460408652606083019061333a565b46604083015203601f1981018352826106d7565b91909161370161383f565b60ff61086b5460e01c166110cb5761014081015163ffffffff1661372a4263ffffffff16612a94565b101580613743575b612af25761329792612ab7826136c5565b506137516040820151613bb3565b6001600160a01b0316331415613732565b9a9897959296939094919661377e63ffffffff42169788613149565b9761361d61383f565b734200000000000000000000000000000000000007330361383057604051636e296e4560e01b81526020816004817342000000000000000000000000000000000000075afa9081156109f3575f91613811575b506001600160a01b036137f9611e5f610869546001600160a01b031690565b91160361380257565b6336a816d960e01b5f5260045ffd5b61382a915060203d6020116109ec576109de81836106d7565b5f6137da565b63253a6fc960e11b5f5260045ffd5b60026065541461048e576002606555565b9081602091031261048e57516107a4816104d2565b6040513d5f823e3d90fd5b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116911681146138a7575b50565b476138af5750565b4790803b1561048e575f90600460405180948193630d0e30db60e41b83525af180156109f357156138a4575f6104f0916106d7565b6107a4929160405161395f81611e24602082019460208652805160408401526020810151606084015260a0613929604083015160c06080870152610100860190612e10565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152612e43565b519020916142ca565b613973600291612bca565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b80809216146139b557825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b9081602091031261048e575190565b9190820180921161316357565b91959495939092935f9681519081815103613ba45781613a5f575b50505082613a0a575b50505050565b63ffffffff613a41611e5f83611e5f7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb357958861438d565b6040805195865233602087015290959190911693a45f808080613a04565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa9081156109f3575f91613b85575b505f5f5b848110613aa5575050506139fb565b613aaf818761300c565b51613abd575b600101613a96565b90613ad390613acc838861300c565b51906139d3565b90828211613b7657613b0d6121f0613afb613aee848861300c565b516001600160a01b031690565b613b05848a61300c565b51908a61431b565b15613ab5579a50613b1e8b8661300c565b51613b6c613b648d613b4f613aee613b488c6001600160a01b03165f5261087360205260405f2090565b928961300c565b6001600160a01b03165f5260205260405f2090565b9182546139d3565b905560019a613ab5565b632ddaa83160e11b5f5260045ffd5b613b9e915060203d60201161122c5761121d81836106d7565b5f613a92565b6319a5316760e31b5f5260045ffd5b6001600160a01b0390613bc581614764565b1690565b916121f091613c4593604081519101519160405191613be7836106bb565b825261395f613c03602084019246845260408501958652612bca565b505493604051928391613c2a602084019660208852516060604086015260a085019061333a565b9151606084015251608083015203601f1981018352826106d7565b612df257565b805163ffffffff6101208201511663ffffffff429116106110ad576020820151906002613c81835f5261087260205260405f2090565b5414613cb5576104f0926002613ca26001945f5261087260205260405f2090565b55613cb060025f8484614811565b614913565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff429116106110ad576020830151926001613cfb855f5261087260205260405f2090565b5403613d46576001935b6002613d1a825f5261087260205260405f2090565b5414613cb5576104f0945f946002613d3e613cb0945f5261087260205260405f2090565b558484614811565b5f93613d05565b80519081613d5b5750505f90565b6020012090565b93926042936104f0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613dc960e0826106d7565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613e2160a0826106d7565b519020906040519161190160f01b8352600283015260228201522090614b7a565b9190820391821161316357565b9692610140989563ffffffff9586949285936107a49e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906113c2565b613eae8151614764565b606081019081511561416357610120810190613eda613ed1835163ffffffff1690565b63ffffffff1690565b80421090811561412a575b5061411b57610140810192613efe845163ffffffff1690565b63ffffffff613f2f817f000000000000000000000000000000000000000000000000000000000000000016426139d3565b91161161410c5761016082015163ffffffff169182806140c9575b5060408101918251926001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016809414806140c0575b15614070576080830151340361406157833b1561048e575f60049460405195868092630d0e30db60e41b825234905af19081156109f3577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39461404292614047575b505b5191519260808101519060a081015160c0820151976140216140166101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613e4f565b0390a4565b806140555f61405b936106d7565b80610484565b5f613fe8565b636452a35d60e01b5f5260045ffd5b92503461406157614042836140bb6140ac611e5f7f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad39751613bb3565b60808601519030903390614c66565b613fea565b50341515613f86565b6301e1338010156140f4575b60e0810151156140e5575f613f4a565b63495d907f60e01b5f5260045ffd5b916141069063ffffffff421690613149565b916140d5565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b614135915042613e42565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613ee5565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561048e57565b60ff5f5460081c161561048e576001606555565b6001600160a01b031680156141dd57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b0316801561423557806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f51148116156142ab575b604091909152156142905750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b60018115166142c1573d15833b15151616614282565b503d5f823e3d90fd5b929091905f915b8451831015614313576142e4838661300c565b519081811015614302575f52602052600160405f205b9201916142d1565b905f52602052600160405f206142fa565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f916143578160648101611e24565b519082855af1903d5f51908361436e575b50505090565b9192509061438357503b15155b5f8080614368565b600191501461437b565b906001600160a01b038116906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682145f146144e75750803b1561048e57604051632e1a7d4d60e01b815260048101839052905f908290602490829084905af180156109f3576144d3575b50610c5a54602081901c6001600160a01b03169161443461442a61086a546001600160a01b031690565b9263ffffffff1690565b927342000000000000000000000000000000000000103b1561048e57604051631474f2a960e31b81526001600160a01b039182166004820152921660248301526044820181905263ffffffff92909216606482015260a060848201525f60a482018190529091829060c49082907342000000000000000000000000000000000000105af180156109f3576144c55750565b806140555f6104f0936106d7565b806140555f6144e1936106d7565b5f614400565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316151580614732575b1561453d5750506104f09061453861086a546001600160a01b031690565b614da3565b6001600160a01b03614571614564846001600160a01b03165f52610c5c60205260405f2090565b546001600160a01b031690565b16614706576001600160a01b037342000000000000000000000000000000000000105b16906145b8611e5f614564856001600160a01b03165f52610c5d60205260405f2090565b156146805783826145c892614cf3565b6145e7614564836001600160a01b03165f52610c5d60205260405f2090565b906145fb61086a546001600160a01b031690565b9161460c610c5a5463ffffffff1690565b823b1561048e5760405163540abf7360e01b81526001600160a01b0395861660048201529185166024830152929093166044840152606483019390935263ffffffff16608482015260c060a48201525f60c482018190529091829081838160e481015b03925af180156109f3576144c55750565b509161469561086a546001600160a01b031690565b926146a6610c5a5463ffffffff1690565b93813b1561048e57604051631474f2a960e31b81526001600160a01b03948516600482015293166024840152604483019190915263ffffffff909216606482015260a060848201525f60a482018190529091829081838160c4810161466f565b6001600160a01b0361472d614564846001600160a01b03165f52610c5c60205260405f2090565b614594565b506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016811461451a565b60a01c61476d57565b6379ec0ed760e11b5f5260045ffd5b61478582612f33565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061480a82612f33565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa75037469013720890939293606083015161404260808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61487561012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956148d96148a161016060208b01519a0151613d4d565b9960608c01519b60406148b76080830151613d4d565b9101519060206148c5610728565b9e8f528e015260408d015260608c0161477c565b6040519c8d9c8d614788565b906107a494936080936001600160a01b038093168452602084015216604082015281606082015201906113c2565b906080614921910151613bb3565b9160806040830151926149376060820151613bb3565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f14614a28575015614a14575b61499291506001600160a01b03851661504f565b0151908151151580614a0a575b6149a95750505050565b6001600160a01b0316803b1561048e576149df935f809460405196879586948593633a5be8cb60e01b85523391600486016148e5565b03925af180156109f3576149f6575b808080613a04565b806140555f614a04936106d7565b5f6149ee565b50803b151561499f565b614a219130903390614c66565b5f8461497e565b90614a3d57614a38923390614c66565b614992565b614a38925087614244565b91614a5283614b19565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614b11575b50614a95575050565b6138a4915f8060405193614aaa6060866106d7565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614b0b613044565b91615291565b90505f614a8c565b803b1561048e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b919091614b878284615260565b9390926005851015612f3d57614bb094159384614c50575b508315614bc5575b50505015151590565b614bb657565b63938a182160e01b5f5260045ffd5b5f935090611e24614bfd8594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906113c2565b51915afa614c09613044565b81614c42575b81614c1e575b505f8080614ba7565b9050614c3b630b135d3f60e11b91602080825183010191016139c4565b145f614c15565b905060208151101590614c0f565b6001600160a01b0384811691161493505f614b9f565b5f6001600160a01b038192614cc39682604051978160208a01986323b872dd60e01b8a521660248a0152166044880152606487015260648652614caa6084876106d7565b1692614cb461512b565b94519082855af1614b0b613044565b8051908115918215614cd9575b50501561048e57565b614cec9250602080918301019101615166565b5f80614cd0565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa9081156109f3576104f094614d7f92614d4b925f91614d84575b506139d3565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836106d7565b61517b565b614d9d915060203d60201161122c5761121d81836106d7565b5f614d45565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614e04838584614cf3565b6040516332dd704760e21b815291602083600481885afa9283156109f3575f93615025575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa9283156109f3575f93615004575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614e9b57505050505050565b83811115614ffe57835b8515614f5a57863b1561048e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af19283156109f357614f4093614f46575b50613e42565b80614e8f565b806140555f614f54936106d7565b5f614f3a565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af19283156109f357614f4093614fd05750613e42565b614ff09060203d8111614ff7575b614fe881836106d7565b8101906151a6565b505f614f3a565b503d614fde565b80614ea5565b61501e91935060203d60201161122c5761121d81836106d7565b915f614e69565b6001600160a01b039193506150489060203d6020116109ec576109de81836106d7565b9290614e29565b906001600160a01b038216803b15801561511c575b156150e857506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561048e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af19283156109f3576104f0936150d4575b50615238565b806140555f6150e2936106d7565b5f6150ce565b6104f092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016614244565b50615126816151c6565b615064565b6040519061513a6040836106d7565b602082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65646020830152565b9081602091031261048e57516107a481611a1c565b906001600160a01b03614cc392165f8061519361512b565b9360208151910182855af1614b0b613044565b9081602091031261048e575167ffffffffffffffff8116810361048e5790565b803b6151d181610737565b906151df60405192836106d7565b8082525f6020830180943c5190516001600160e81b03198116919060038210615219575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80615203565b81471061048e575f8080936001600160a01b038294165af1615258613044565b501561048e57565b9060418151145f14615288576113be91602082015190606060408401519301515f1a906152bc565b50505f90600290565b919250156152ad578151156152a4575090565b3b1561048e5790565b50805190811561048e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841161532c576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa156109f3575f516001600160a01b0381161561532457905f90565b505f90600190565b505050505f9060039056fea2646970667358221220b65673aa3823b7ceeda9572bbed9f032dc0365de86979acb3f22a265a5dc80c064736f6c634300081e0033"}
|