@across-protocol/contracts 5.0.11-alpha.3 → 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 +23 -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"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"},{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_oftDstEid","type":"uint32","internalType":"uint32"},{"name":"_oftFeeCap","type":"uint256","internalType":"uint256"}],"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":"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":"__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":"fxChild","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_polygonTokenBridger","type":"address","internalType":"contract PolygonTokenBridger"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_fxChild","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"polygonTokenBridger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract PolygonTokenBridger"}],"stateMutability":"view"},{"type":"function","name":"processMessageFromRoot","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"rootMessageSender","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"setFxChild","inputs":[{"name":"newFxChild","type":"address","internalType":"address"}],"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":"setPolygonTokenBridger","inputs":[{"name":"newPolygonTokenBridger","type":"address","internalType":"address payable"}],"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":"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":"wrap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"ReceivedMessageFromL1","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"rootMessageSender","type":"address","indexed":true,"internalType":"address"}],"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":"SetFxChild","inputs":[{"name":"newFxChild","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":"SetPolygonTokenBridger","inputs":[{"name":"polygonTokenBridger","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":"CallValidatedAlreadySet","inputs":[]},{"type":"error","name":"CallValidatedNotSet","inputs":[]},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DelegateCallFailed","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":"MulticallExecuteLeaf","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"NotFxChild","inputs":[]},{"type":"error","name":"NotHubPool","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":"0x6101c080604052346102c85760e081615842803803809161002082856102cc565b8339810103126102c85780516001600160a01b038116908190036102c85761004a602083016102ef565b91610057604082016102ef565b6060820151936001600160a01b03851685036102c8576080830151936001600160a01b038516938486036102c85760c061009360a083016102ef565b910151903060805260c05260a05260e05261010052610120525f549160ff8360081c166102c8575f938360ff808796160361028e575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100f86024826102cc565b51915afa3d15610287573d6001600160401b0381116102735760405190610129601f8201601f1916602001836102cc565b81523d5f602083013e5b81610267575b81610231575b506101a052604051615541908161030182396080518181816110670152818161146c01526115c3015260a05181818161179d015261524b015260c0518181816118560152614c1e015260e0518181816107f001528181613baa01528181613f300152818161441a01528181614a7a0152614afd01526101005181818161173c0152613d8901526101205181818161047e0152613b5601526101405181818161181601528181614e350152614edd01526101605181818161075701528181614a250152614d1c015261018051818181611e14015281816149010152614d4501526101a051818181611a690152614ddb0152f35b9050602081519101519060208110610256575b506001600160a01b031615155f61013f565b5f199060200360031b1b165f610244565b80516020149150610139565b634e487b7160e01b5f52604160045260245ffd5b6060610133565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100c9565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761027357604052565b519063ffffffff821682036102c85756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461044f5780630cb84d9a1461044a5780631186ec331461044557806311eac8551461044057806313fb77ee1461043b57806315348e44146103c857806317fcb39b1461043657806319c1648c146104315780631b3d55591461042c5780631fab657c1461042757806329cb924d146104225780632e3781151461041d5780632e63e59a146104185780633659cfe6146104135780633edb89d11461040e578063437b911614610409578063450d11f014610404578063490e49ef146103ff578063493a4f84146103fa5780634f1ef286146103f55780635285e058146103f057806352d1902d146103eb578063541f4f14146103e6578063577f51f8146103e157806357f6dcb8146103dc5780636068d6cb146103d757806361a04d30146103d2578063670fa8ac146103cd5780636bbbcd2e146103c85780636e400983146103c35780636fd5c10e146103be578063738b62e5146103b95780637659f9e0146103b4578063775c0d03146103af5780637aef642c146103aa5780637b939232146103a55780637ef413e1146103a057806382e2c43f1461039b5780638a7860ce146103965780638b15788e146103915780639748cf7c1461038c57806397943aa914610387578063979f2bc21461038257806399cc29681461037d5780639a7c4b71146103785780639a8a059214610373578063a1244c671461036e578063a18a096e14610369578063ac9650d814610364578063ad5425c61461035f578063adb5a6a61461030f578063b370b7f51461035a578063b4c0d7ab14610355578063b86cfdcf14610350578063babb6aac1461034b578063c35c83fc14610346578063ceb4c98714610341578063d46eb1191461033c578063d7e1583a14610337578063dda5211314610332578063ddd224f11461032d578063de7eba7814610328578063deff4b2414610323578063ea86bd461461031e578063ee2a53f814610319578063f2c2092414610314578063f79f29ed1461030f5763fc8a584f0361000e57612b0a565b61244a565b6129e8565b6129aa565b612906565b612814565b6127e4565b6127bb565b612795565b61275f565b61265f565b612641565b612616565b612537565b612502565b6124d3565b612491565b6123d9565b612330565b6121d8565b6121b1565b612197565b61204a565b611fb4565b611ec6565b611e38565b611df5565b611d84565b611d0c565b611bee565b611bb8565b611b20565b611a8e565b611a52565b61192b565b611884565b61183a565b6117fa565b6107b7565b6117c0565b611786565b611760565b611720565b6116a3565b611613565b6115a9565b611582565b611429565b6113a1565b611383565b61135c565b611285565b611199565b611040565b610e47565b610cf4565b610ccb565b610bc3565b610aa1565b610839565b6107d1565b61077b565b610738565b6106d1565b6104cd565b610462565b5f91031261045e57565b5f80fd5b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361045e57565b60e435906104c0826104a2565b565b35906104c0826104a2565b3461045e57602036600319011261045e576001600160a01b036004356104f2816104a2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b820361045e57565b60a435908160070b820361045e57565b63ffffffff81160361045e57565b61010435906104c082610533565b61012435906104c082610533565b61014435906104c082610533565b61016435906104c082610533565b35906104c082610533565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105b457604052565b610584565b6101a0810190811067ffffffffffffffff8211176105b457604052565b6060810190811067ffffffffffffffff8211176105b457604052565b90601f8019910116810190811067ffffffffffffffff8211176105b457604052565b604051906104c060c0836105f2565b604051906104c0610180836105f2565b604051906104c06101a0836105f2565b604051906104c06080836105f2565b604051906104c060e0836105f2565b67ffffffffffffffff81116105b457601f01601f191660200190565b92919261068982610661565b9161069760405193846105f2565b82948184528183011161045e578281602093845f960137010152565b9080601f8301121561045e578160206106ce9335910161067d565b90565b61010036600319011261045e576106e96004356104a2565b6106f46024356104a2565b6106fc610513565b5061070860a435610533565b60c43567ffffffffffffffff811161045e576107289036906004016106b3565b506332ed1ba560e21b5f5260045ffd5b3461045e575f36600319011261045e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e57602036600319011261045e576107b060043561079b816104a2565b6107a3613562565b6107ab613582565b613593565b6001606555005b3461045e575f36600319011261045e5760206040515f8152f35b3461045e575f36600319011261045e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261045e5760043561082c816104a2565b906024356106ce816104a2565b3461045e5761084736610814565b61084f613562565b610857613582565b6001600160a01b03811691821515806108f0575b6108e1576108b26001600160a01b0392610897836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610959575f9161092a575b506001600160a01b038083169116141561086b565b61094c915060203d602011610952575b61094481836105f2565b8101906135d6565b5f610915565b503d61093a565b6135eb565b67ffffffffffffffff81116105b45760051b60200190565b9080601f8301121561045e57813561098d8161095e565b9261099b60405194856105f2565b81845260208085019260051b82010192831161045e57602001905b8282106109c35750505090565b81358152602091820191016109b6565b9080601f8301121561045e5781356109ea8161095e565b926109f860405194856105f2565b81845260208085019260051b82010192831161045e57602001905b828210610a205750505090565b602080918335610a2f816104a2565b815201910190610a13565b929190610a468161095e565b93610a5460405195866105f2565b602085838152019160051b810192831161045e57905b828210610a7657505050565b8135815260209182019101610a6a565b9080601f8301121561045e578160206106ce93359101610a3a565b606036600319011261045e57600435610ab981610533565b6024359067ffffffffffffffff821161045e5760c0600319833603011261045e57610ae2610614565b918060040135835260248101356020840152604481013567ffffffffffffffff811161045e57610b189060043691840101610976565b6040840152610b2960648201610579565b6060840152610b3a608482016104c2565b608084015260a48101359067ffffffffffffffff821161045e576004610b6392369201016109d3565b60a08301526044359167ffffffffffffffff831161045e57610b8c610018933690600401610a86565b91612b3a565b9181601f8401121561045e5782359167ffffffffffffffff831161045e576020808501948460051b01011161045e57565b3461045e57606036600319011261045e5760043567ffffffffffffffff811161045e5780360390606060031983011261045e57602435610c0281610533565b60443567ffffffffffffffff811161045e57610c22903690600401610b92565b919093610c2d613582565b600484013590610182190181121561045e57610cc194610cbc93610c586004610cb594880101612c9c565b95610c6e610c6960808901516136b3565b6136c9565b6044610c79886133d1565b91013560208801519061016089015192610c91610614565b998a5260208a01526040890152606088015260808701525f60a08701523691610a3a565b90836136f7565b613782565b6100186001606555565b3461045e575f36600319011261045e576020604051428152f35b908161018091031261045e5790565b3461045e57604036600319011261045e5760043567ffffffffffffffff811161045e57610d25903690600401610ce5565b602435610d3182612ca7565b6001600160a01b031691610d4760208201612ca7565b6001600160a01b031690610d5d60408201612ca7565b6001600160a01b031690610d7360608201612ca7565b6001600160a01b0316610d8860808301612ca7565b6001600160a01b031660e083013560c084013560a0850135610dad6101008701612cb1565b93610dbb6101208801612cb1565b95610dc96101408901612cb1565b976101608101610dd891612cbb565b99909a610de3610623565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610e359261067d565b61016083015261001891339190613402565b3461045e57602036600319011261045e5760043567ffffffffffffffff811161045e57610e78903690600401610ce5565b610e80613582565b60ff61086b5460e01c166110315763ffffffff421690610140810190610eb883610ea984612cb1565b63ffffffff9182169116101590565b6110225761012081019263ffffffff610ed085612cb1565b161061101357610ee8610ee3368361267f565b6133d1565b90610efc825f5261087260205260405f2090565b5461100557610f3e610f387f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b6060810135610ff860808301359260a08101359060c081013560e082013597610f75610f6f6101008501359b612cb1565b91612cb1565b604084013591843593610fa4610f9f610f98602089013598610160810190612cbb565b369161067d565b613884565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461045e57602036600319011261045e5760043561105d816104a2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461045e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361045e576110c6613562565b6110ce6124b8565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156111025750610018906145e2565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611168575b50611133575f80fd5b610018926111637f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612d11565b614511565b61118b91935060203d602011611192575b61118381836105f2565b810190613899565b915f61112a565b503d611179565b3461045e575f36600319011261045e5760206001600160a01b03610c5b5416604051908152f35b602060031982011261045e576004359067ffffffffffffffff821161045e576111eb91600401610b92565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061124557505050505090565b9091929394602080611276600193603f198682030187526040838b51805115158452015191818582015201906111ef565b97019301930191939290611236565b3461045e57611293366111c0565b61129d81836138ec565b6112a68161095e565b916112b460405193846105f2565b818352601f196112c38361095e565b015f5b8181106113385750505f5b8281106112ea57604051806112e68682611213565b0390f35b806113326112fa60019387612d18565b515f80611308858989612d2c565b9061131860405180938193612d43565b0390305af490611326612d50565b60208201529015159052565b016112d1565b60209060405161134781610598565b5f8152606083820152828288010152016112c6565b3461045e575f36600319011261045e5760206001600160a01b03610c5a5416604051908152f35b3461045e575f36600319011261045e5760206040516301e133808152f35b3461045e57604036600319011261045e576024356004356113c0613562565b6113c8613582565b61086c54680100000000000000008110156105b45780600163ffffffff920161086c55836113f582612987565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261045e57600435611441816104a2565b60243567ffffffffffffffff811161045e576114619036906004016106b3565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461045e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361045e576114cb613562565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156114ff5761001891506145e2565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611561575b5061152f575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361045e5761001891600191614511565b61157b91925060203d6020116111925761118381836105f2565b905f611526565b3461045e575f36600319011261045e5760206001600160a01b036108695416604051908152f35b3461045e575f36600319011261045e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361045e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261045e5761162b6004356104a2565b6116366024356104a2565b6116416044356104a2565b611649610523565b5061165560c435610533565b60e43567ffffffffffffffff811161045e576107289036906004016106b3565b9181601f8401121561045e5782359167ffffffffffffffff831161045e576020838186019501011161045e57565b3461045e5760c036600319011261045e576004356116c0816104a2565b602435604435916064356116d3816104a2565b60843567ffffffffffffffff811161045e576116f3903690600401611675565b9160a4359567ffffffffffffffff871161045e57611718610018973690600401611675565b969095612dd2565b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e575f36600319011261045e57602060ff61086b5460e81c166040519015158152f35b3461045e575f36600319011261045e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461045e575f36600319011261045e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361045e57565b3461045e57602036600319011261045e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921960206004356118c48161187a565b6118cc613562565b6118d4613582565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206106ce9281815201906111ef565b3461045e57602036600319011261045e5760043567ffffffffffffffff811161045e5761195c903690600401611675565b611964613562565b61196c613582565b810160408282031261045e57813591611984836104a2565b60208101359167ffffffffffffffff831161045e576001600160a01b03926119ac92016106b3565b91168015611a43576004825110611a34575f8083516020850182855af1906119d2612d50565b9115611a25577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611a0c6112e6946040519182918261191a565b0390a2611a196001606555565b6040519182918261191a565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461045e575f36600319011261045e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261045e57600435611aa7816104a2565b602435611ab3816104a2565b60443591611ac0836104a2565b606435611acc816104a2565b60843560e43560c43560a435611ae1836104a2565b611ae9610541565b93611af261054f565b95610144359967ffffffffffffffff8b1161045e57611b186100189b3690600401611675565b9a9099612e74565b61018036600319011261045e57600435611b39816104a2565b602435611b45816104a2565b60443591611b52836104a2565b606435611b5e816104a2565b60843560a43560c435611b6f6104b3565b90611b78610541565b92611b8161054f565b94611b8a61055d565b96610164359a67ffffffffffffffff8c1161045e57611bb06100189c3690600401611675565b9b909a612e96565b3461045e57606036600319011261045e576020611be6600435611bda816104a2565b60243560443591612fbc565b604051908152f35b3461045e57606036600319011261045e5760043560243567ffffffffffffffff811161045e57611c22903690600401611675565b9060443567ffffffffffffffff811161045e57611c43903690600401611675565b9190936040516020810190611c6c81611c5e46898887612ffa565b03601f1981018352826105f2565b51902003611cfd575f93611c87828695611c90940190612739565b92810190613017565b51611cc7611ca5335b6001600160a01b031690565b91611c5e60405193849260208401966337bfd2c960e21b8852602485016130e2565b5190305af4611cd4612d50565b9015611cdc57005b60405163b8fe37a760e01b8152908190611cf9906004830161191a565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461045e57602036600319011261045e57600435611d28613562565b611d30613582565b611d3981612987565b611d71576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261045e5760443560243560043560643560843560a4356101043560e43560c435611db561054f565b93611dbe61055d565b95611dc761056b565b97610184359b67ffffffffffffffff8d1161045e57611ded6100189d3690600401611675565b9c909b613104565b3461045e575f36600319011261045e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e5760e036600319011261045e5760043567ffffffffffffffff811161045e57611e69903690600401610ce5565b602435604435916064356084359060a43567ffffffffffffffff811161045e57611e97903690600401611675565b92909160c4359667ffffffffffffffff881161045e57611ebe610018983690600401611675565b97909661317c565b3461045e57606036600319011261045e57600435611ee381610533565b60243590611ef0826104a2565b60443590611efd826104a2565b60ff5f5460081c161561045e57611f319063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192611f4082856105f2565b600984526020808501926820a1a927a9a996ab1960b91b8452611f65815191826105f2565b6005815201640312e302e360dc1b815260ff5f5460081c161561045e576005611faf936100189651902091209061047f5561048055611fa2613dbe565b611faa613dcd565b613de1565b613e39565b3461045e57602036600319011261045e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611ff48161187a565b611ffc613562565b612004613582565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461045e57606036600319011261045e57602435612067816104a2565b60443567ffffffffffffffff811161045e57612087903690600401611675565b90610c5b5460ff8160a01c166121885760ff60a01b19167401000000000000000000000000000000000000000017610c5b55610c5a546120cf906001600160a01b0316611c99565b3303612179576001600160a01b036120f3611c99610869546001600160a01b031690565b931692830361216a575f91829161210f60405180938193612d43565b0390305af461211c612d50565b501561215b57337f5185f02297526865dfbc461916f7dd8d40414c836fa469073ebea66ce68ba8635f80a361001860ff60a01b19610c5b5416610c5b55565b6318cecad560e01b5f5260045ffd5b6319ce078360e11b5f5260045ffd5b63718652d160e11b5f5260045ffd5b63680ecabb60e11b5f5260045ffd5b3461045e575f36600319011261045e576020604051468152f35b3461045e575f36600319011261045e57602063ffffffff61086b5460c01c16604051908152f35b3461045e57604036600319011261045e576004356024356121f88261422f565b6001600160a01b03821691825f5261087360205261222960405f20336001600160a01b03165f5260205260405f2090565b549283156122c2576122725f9161223f8461422f565b61225c33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561229283612283611c99846136b3565b61228c856136b3565b90613e91565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061230357505050505090565b9091929394602080612321600193603f1986820301875289516111ef565b970193019301919392906122f4565b3461045e5761233e366111c0565b9061234982826138ec565b6123528261326a565b915f5b81811061236a57604051806112e686826122d1565b5f80612377838587612d2c565b9061238760405180938193612d43565b0390305af4612394612d50565b90156123ba57906001916123a88287612d18565b526123b38186612d18565b5001612355565b604481511061045e5780602480600461045e94015183010191016132b3565b61018036600319011261045e576044356024356004356064356084356101043560e43560c43560a43561240b84610533565b61241361054f565b9461241c61055d565b96610164359a67ffffffffffffffff8c1161045e576124426100189c3690600401611675565b9b909a613316565b3461045e5760206124886001600160a01b0361246536610814565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461045e575f36600319011261045e5760206001600160a01b0361086a5416604051908152f35b604051906124c76020836105f2565b5f808352366020840137565b3461045e575f36600319011261045e576112e66124ee6124b8565b6040519182916020835260208301906111ef565b3461045e57602036600319011261045e576107b0600435612522816104a2565b61252a613562565b612532613582565b613ed9565b3461045e5760c036600319011261045e5760043560243560443560643560843567ffffffffffffffff811161045e57612574903690600401611675565b60a4939193359067ffffffffffffffff821161045e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946125bd61260c933690600401611675565b9290916125c8613582565b6125d18a61422f565b612600898b89896125e336888861067d565b926125ef368b8b61067d565b946001600160a01b034692166139a2565b60405196879687612d9f565b0390a36001606555005b3461045e57602036600319011261045e576004355f52610872602052602060405f2054604051908152f35b3461045e575f36600319011261045e57602060405163ffffffff8152f35b3461045e575f36600319011261045e57612677613582565b6107b0613f1c565b9190916101808184031261045e57612695610623565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e08501526101008201356101008501526126f96101208301610579565b61012085015261270c6101408301610579565b61014085015261016082013567ffffffffffffffff811161045e5761273192016106b3565b610160830152565b9060208282031261045e57813567ffffffffffffffff811161045e576106ce920161267f565b3461045e57602036600319011261045e5760043567ffffffffffffffff811161045e57611be6610ee3602092369060040161267f565b3461045e575f36600319011261045e57602060ff61086b5460e01c166040519015158152f35b3461045e575f36600319011261045e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461045e57602036600319011261045e576107b0600435612804816104a2565b61280c613562565b611faa613582565b3461045e57606036600319011261045e5760043567ffffffffffffffff811161045e5761284590369060040161267f565b6024359060443590612855613582565b60ff61086b5460e01c166110315761014081015163ffffffff166128844263ffffffff165b9163ffffffff1690565b1015806128e7575b6128d857610cc19261289d826133d1565b60c0830151602084015190610160850151926128b7610614565b958652602086015260408501526060840152608083015260a08201526137fb565b630c3a9b9d60e41b5f5260045ffd5b506128f560408201516136b3565b6001600160a01b031633141561288c565b61016036600319011261045e576044356024356004356064356101043560e43560c43560a43560843561293885610533565b610124359561294687610533565b610144359967ffffffffffffffff8b1161045e5761296b6100189b3690600401611675565b9a909961346e565b634e487b7160e01b5f52603260045260245ffd5b61086c548110156129a55761086c5f52600360205f20910201905f90565b612973565b3461045e57602036600319011261045e5760043561086c5481101561045e576129d4604091612987565b506001815491015482519182526020820152f35b3461045e5760a036600319011261045e57600435612a0581610533565b612a82602435612a14816104a2565b604435612a20816104a2565b60643590612a2d826104a2565b60843592612a3a846104a2565b5f5495612a6860ff600889901c1615612a52565b1590565b80988199612afc575b8115612adc575b50612d11565b86612a79600160ff195f5416175f55565b612ac557613493565b612a8857005b612a9661ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b612ad761010061ff00195f5416175f55565b613493565b303b15915081612aee575b505f612a62565b60ff1660011490505f612ae7565b600160ff8216109150612a5b565b3461045e57602036600319011261045e576107b0600435612b2a816104a2565b612b32613562565b611faf613582565b91908051151580612c88575b612c7957612b52613582565b60808101612b6a610c6982516001600160a01b031690565b602082019283514603612c6a57612a4e612b9291846001612b8a89612987565b500154613f85565b612c5b5763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612c4e6060850195612bdc612bd6885163ffffffff1690565b89614000565b8051958051612c38612c2a612c19604085019a8c612c008d51915163ffffffff1690565b8a516001600160a01b03169160a089019788519461405c565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487613665565b0390a46104c06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b635d04968b60e11b5f5260045ffd5b503332141580612b465750333b1515612b46565b6106ce90369061267f565b356106ce816104a2565b356106ce81610533565b903590601e198136030182121561045e570180359067ffffffffffffffff821161045e5760200191813603831361045e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612d0c57565b612cee565b1561045e57565b80518210156129a55760209160051b010190565b908210156129a5576111eb9160051b810190612cbb565b908092918237015f815290565b3d15612d7a573d90612d6182610661565b91612d6f60405193846105f2565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612dc4926106ce979587526020870152608060408701526080860191612d7f565b926060818503910152612d7f565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612e3c959a949916612e2e8a8c83612e1936888861067d565b91612e25368b8b61067d565b9346908d6139a2565b604051978897169a87612d9f565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff8211612e6f57565b612e41565b96949290916104c09b9a9998969492612e9463ffffffff42169889612e55565b985b9593919b999897969492909b612eaa613582565b61086b5460ff8160e81c16612fad5760c01c63ffffffff1696612ecc886133ba565b612ef39063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612efb610633565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190612f71919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612f949261067d565b610180820152612fa390613af1565b6104c06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ff46074826105f2565b51902090565b93929160209161301291604087526040870191612d7f565b930152565b9081602091031261045e57604051906020820182811067ffffffffffffffff8211176105b45760405235815290565b906101806101606106ce93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501526130c061012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906111ef565b6130fa60409295949395606083526060830190613046565b9460208201520152565b9c9a9998979695949392919096613119613582565b60ff61086b5460e81c16612fad57613132908e33612fbc565b96604051809e613141826105b9565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612f71565b97929095969493919661318d613582565b60ff61086b5460e01c16611031576131a86101408a01612cb1565b6131b74263ffffffff1661287a565b10158061324b575b6128d857612fa398613240613246976131db610ee3368561267f565b996131e4610614565b9a6131ef368661267f565b8c5260208c01528560408c01528660608c015261320d36868b61067d565b60808c015260a08b015261323861322484356136b3565b9860e061010086013595013595369161067d565b96369161067d565b956139a2565b6137fb565b5061325960408a01356136b3565b6001600160a01b03163314156131bf565b906132748261095e565b61328160405191826105f2565b8281528092613292601f199161095e565b01905f5b8281106132a257505050565b806060602080938501015201613296565b60208183031261045e5780519067ffffffffffffffff821161045e570181601f8201121561045e578051906132e782610661565b926132f560405194856105f2565b8284526020838301011161045e57815f9260208093018386015e8301015290565b9b99989796949290959391613329613582565b61086b5460ff8160e81c16612fad5760c01c63ffffffff169661334b886133ba565b6133729063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b61337a610633565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152612f71565b63ffffffff1663ffffffff8114612e6f5760010190565b604051612ff4816133ee6020820194604086526060830190613046565b46604083015203601f1981018352826105f2565b91909161340d613582565b60ff61086b5460e01c166110315761014081015163ffffffff166134364263ffffffff1661287a565b10158061344f575b6128d857612fa39261289d826133d1565b5061345d60408201516136b3565b6001600160a01b031633141561343e565b9a9897959296939094919661348a63ffffffff42169788612e55565b97613329613582565b9392909360ff60a01b19610c5b5416610c5b5560ff5f5460081c161561045e576134da9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60409384516134e986826105f2565b600981526020808201966820a1a927a9a996ab1960b91b885261350e815191826105f2565b600581520192640312e302e360dc1b845260ff5f5460081c161561045e57611faf612532956001600160a01b039560056104c09a61355c9651902091209061047f5561048055611fa2613dbe565b16613593565b60ff610c5b5460a01c161561357357565b63877d831960e01b5f5260045ffd5b60026065541461045e576002606555565b6001600160a01b0316806001600160a01b0319610c5b541617610c5b557f6ade7bc58132776cc11d9b570837a732329396078de17b87db95463ca7f5d25f5f80a2565b9081602091031261045e57516106ce816104a2565b6040513d5f823e3d90fd5b90602080835192838152019201905f5b8181106136135750505090565b8251845260209384019390920191600101613606565b90602080835192838152019201905f5b8181106136465750505090565b82516001600160a01b0316845260209384019390920191600101613639565b949695919260a0946001600160a01b0361369181966136a5958a5260c060208b015260c08a01906135f6565b921660408801528682036060880152613629565b951515608085015216910152565b6001600160a01b03906136c58161422f565b1690565b6001600160a01b03165f526108746020526001600160a01b0360405f205416156136ef57565b6104c0613f1c565b91612a4e9161377c93604081519101519160405191613715836105d6565b8252613773613731602084019246845260408501958652612987565b505493604051928391613758602084019660208852516060604086015260a0850190613046565b9151606084015251608083015203601f1981018352826105f2565b51902091614810565b612c5b57565b805163ffffffff6101208201511663ffffffff429116106110135760208201519060026137b8835f5261087260205260405f2090565b54146137ec576104c09260026137d96001945f5261087260205260405f2090565b556137e760025f84846142dc565b6143de565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff42911610611013576020830151926001613832855f5261087260205260405f2090565b540361387d576001935b6002613851825f5261087260205260405f2090565b54146137ec576104c0945f9460026138756137e7945f5261087260205260405f2090565b5584846142dc565b5f9361383c565b805190816138925750505f90565b6020012090565b9081602091031261045e575190565b9060041161045e5790600490565b356001600160e01b03198116929190600482106138d1575050565b6001600160e01b031960049290920360031b82901b16169150565b905f908190815b818310613901575050505050565b61392e61392161391b61391586868a612d2c565b906138a8565b906138b6565b6001600160e01b03191690565b631592ca1b60e31b81148015613992575b15613953576347306cb560e01b5f5260045ffd5b631b3d555960e01b0361398157508261397257600180925b01916138f3565b6347306cb560e01b5f5260045ffd5b80929350613972576001809361396b565b506321bdc88b60e11b811461393f565b93926042936104c0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613a0960e0826105f2565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613a6160a0826105f2565b519020906040519161190160f01b8352600283015260228201522090614643565b91908203918211612e6f57565b91908201809211612e6f57565b9692610140989563ffffffff9586949285936106ce9e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906111ef565b613afb815161422f565b6060810190815115613db057610120810190613b27613b1e835163ffffffff1690565b63ffffffff1690565b804210908115613d77575b50613d6857610140810192613b4b845163ffffffff1690565b63ffffffff613b7c817f00000000000000000000000000000000000000000000000000000000000000001642613a8f565b911611613d595761016082015163ffffffff16918280613d16575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613d0d575b15613cbd5760808301513403613cae57833b1561045e575f60049460405195868092630d0e30db60e41b825234905af1908115610959577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613c8f92613c94575b505b5191519260808101519060a081015160c082015197613c6e613c636101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613a9c565b0390a4565b80613ca25f613ca8936105f2565b80610454565b5f613c35565b636452a35d60e01b5f5260045ffd5b925034613cae57613c8f83613d08613cf9611c997f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad397516136b3565b6080860151903090339061472f565b613c37565b50341515613bd3565b6301e133801015613d41575b60e081015115613d32575f613b97565b63495d907f60e01b5f5260045ffd5b91613d539063ffffffff421690612e55565b91613d22565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b613d82915042613a82565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613b32565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561045e57565b60ff5f5460081c161561045e576001606555565b6001600160a01b03168015613e2a57806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b03168015613e8257806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b60405163a9059cbb60e01b60208201526001600160a01b03909216602483015260448201929092526104c091613ed482606481015b03601f1981018452836105f2565b614785565b6001600160a01b0316806001600160a01b0319610c5a541617610c5a557f573834b6d6901b74ef64eeb676a0b99d7946df822b7021e44ee0da19d846c4955f80a2565b4780613f26575b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561045e575f90600460405180948193630d0e30db60e41b83525af1801561095957613f7b5750565b5f6104c0916105f2565b6106ce929160405161377381611c5e602082019460208652805160408401526020810151606084015260a0613fca604083015160c060808701526101008601906135f6565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152613629565b61400b600291612987565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b808092161461404d57825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b91959495939092935f968151908181510361422057816140db575b50505082614086575b50505050565b6001600160a01b03816140ba7ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb35793866148d3565b6040805195865233602087015291169463ffffffff1693a45f808080614080565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610959575f91614201575b505f5f5b84811061412157505050614077565b61412b8187612d18565b51614139575b600101614112565b9061414f906141488388612d18565b5190613a8f565b908282116141f257614189612a4e61417761416a8488612d18565b516001600160a01b031690565b614181848a612d18565b51908a614861565b15614131579a5061419a8b86612d18565b516141e86141e08d6141cb61416a6141c48c6001600160a01b03165f5261087360205260405f2090565b9289612d18565b6001600160a01b03165f5260205260405f2090565b918254613a8f565b905560019a614131565b632ddaa83160e11b5f5260045ffd5b61421a915060203d6020116111925761118381836105f2565b5f61410e565b6319a5316760e31b5f5260045ffd5b60a01c61423857565b6379ec0ed760e11b5f5260045ffd5b61425082612d02565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a083015260600151906142d582612d02565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613c8f60808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61434061012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956143a461436c61016060208b01519a0151613884565b9960608c01519b60406143826080830151613884565b910151906020614390610643565b9e8f528e015260408d015260608c01614247565b6040519c8d9c8d614253565b906106ce94936080936001600160a01b038093168452602084015216604082015281606082015201906111ef565b9060806143ec9101516136b3565b91608060408301519261440260608201516136b3565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f146144f35750156144df575b61445d91506001600160a01b038516614a55565b01519081511515806144d5575b6144745750505050565b6001600160a01b0316803b1561045e576144aa935f809460405196879586948593633a5be8cb60e01b85523391600486016143b0565b03925af18015610959576144c1575b808080614080565b80613ca25f6144cf936105f2565b5f6144b9565b50803b151561446a565b6144ec913090339061472f565b5f84614449565b906145085761450392339061472f565b61445d565b61450392613e91565b9161451b836145e2565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a2815115908115916145da575b5061455e575050565b613f23915f80604051936145736060866105f2565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af46145d4612d50565b91615376565b90505f614555565b803b1561045e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b9190916146508284615056565b9390926005851015612d0c5761467994159384614719575b50831561468e575b50505015151590565b61467f57565b63938a182160e01b5f5260045ffd5b5f935090611c5e6146c68594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906111ef565b51915afa6146d2612d50565b8161470b575b816146e7575b505f8080614670565b9050614704630b135d3f60e11b9160208082518301019101613899565b145f6146de565b9050602081511015906146d8565b6001600160a01b0384811691161493505f614668565b9091926001600160a01b036104c09481604051956323b872dd60e01b6020880152166024860152166044840152606483015260648252613ed46084836105f2565b9081602091031261045e57516106ce8161187a565b906001600160a01b036147e092165f80604051936147a46040866105f2565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af16145d4612d50565b80519081159182156147f6575b50501561045e57565b6148099250602080918301019101614770565b5f806147ed565b929091905f915b84518310156148595761482a8386612d18565b519081811015614848575f52602052600160405f205b920191614817565b905f52602052600160405f20614840565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161489d8160648101611c5e565b519082855af1903d5f5190836148b4575b50505090565b919250906148c957503b15155b5f80806148ae565b60019150146148c1565b6148ff6148f2836001600160a01b03165f5261087460205260405f2090565b546001600160a01b031690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316151580614a1a575b1561494e575061086a546104c092506001600160a01b0316614d10565b6001600160a01b0316918215614984576104c0926001600160a01b0361497d61086a546001600160a01b031690565b9216614bd7565b6001600160a01b03919250166149b0826149aa611c99610c5b546001600160a01b031690565b83614b31565b6149c6611c99610c5b546001600160a01b031690565b91823b1561045e57604051633419e74d60e21b81526001600160a01b039290921660048301526024820152905f908290604490829084905af1801561095957614a0c5750565b80613ca25f6104c0936105f2565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b03841614614931565b906001600160a01b038216803b158015614b22575b15614aee57506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561045e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610959576104c093614ada575b5061502e565b80613ca25f614ae8936105f2565b5f614ad4565b6104c092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016613e91565b50614b2c81614fbc565b614a6a565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa908115610959576104c094613ed492614b89925f91614bb8575b50613a8f565b60405163095ea7b360e01b60208201526001600160a01b03909416602485015260448401528260648101613ec6565b614bd1915060203d6020116111925761118381836105f2565b5f614b83565b92919091614be3615087565b50614bec6150ce565b50614bf56124b8565b614bfd6124b8565b90614c066124b8565b926001600160a01b03614c17610652565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152951660208601528060408601526060850152608084015260a083015260c082015260405191633b6f743b60e01b835260408380614c80856004830161518f565b03816001600160a01b0385165afa928315610959575f93614cdf575b5082513410614cd0576104c093614cb4845134613a82565b80614cc0575b50615245565b614cca903361502e565b5f614cba565b63557a94ff60e11b5f5260045ffd5b614d0291935060403d604011614d09575b614cfa81836105f2565b81019061510e565b915f614c9c565b503d614cf0565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614d71838584614b31565b6040516332dd704760e21b815291602083600481885afa928315610959575f93614f92575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610959575f93614f71575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614e0857505050505050565b83811115614f6b57835b8515614ec757863b1561045e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561095957614ead93614eb3575b50613a82565b80614dfc565b80613ca25f614ec1936105f2565b5f614ea7565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561095957614ead93614f3d5750613a82565b614f5d9060203d8111614f64575b614f5581836105f2565b810190615362565b505f614ea7565b503d614f4b565b80614e12565b614f8b91935060203d6020116111925761118381836105f2565b915f614dd6565b6001600160a01b03919350614fb59060203d6020116109525761094481836105f2565b9290614d96565b803b614fc781610661565b90614fd560405192836105f2565b8082525f6020830180943c5190516001600160e81b0319811691906003821061500f575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80614ff9565b81471061045e575f8080936001600160a01b038294165af161504e612d50565b501561045e57565b9060418151145f1461507e576111eb91602082015190606060408401519301515f1a906153a1565b50505f90600290565b6040519060e0820182811067ffffffffffffffff8211176105b457604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b604051906150db82610598565b5f6020838281520152565b919082604091031261045e576040516150fe81610598565b6020808294805184520151910152565b9060408282031261045e576106ce916150e6565b6106ce9163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c061517e61516c608085015160e0608086015260e08501906111ef565b60a085015184820360a08601526111ef565b9201519060c08184039101526111ef565b919060206130125f92604086526040860190615122565b519067ffffffffffffffff8216820361045e57565b919082810360c0811261045e5760801361045e576106ce9060806040516151e1816105d6565b855181526151f1602087016151a6565b602082015261520383604088016150e6565b604082015294016150e6565b9193926001600160a01b03906020615231606094608087526080870190615122565b968051828701520151604085015216910152565b918351927f0000000000000000000000000000000000000000000000000000000000000000841161535357478411615344576020850151615335576001600160a01b03946152c1946152a360c095604086015198899116809561541c565b60405180968195829463c7c7f5b360e01b845230916004850161520f565b03925af1908115610959575f91615304575b50602081015182036152f55751036152e757565b623c548b60ea1b5f5260045ffd5b631bfc3cb560e11b5f5260045ffd5b615326915060c03d60c01161532e575b61531e81836105f2565b8101906151bb565b90505f6152d3565b503d615314565b630e282ec960e21b5f5260045ffd5b63a6226f8560e01b5f5260045ffd5b631754d7a960e01b5f5260045ffd5b9081602091031261045e576106ce906151a6565b9192501561539257815115615389575090565b3b1561045e5790565b50805190811561045e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615411576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610959575f516001600160a01b0381161561540957905f90565b505f90600190565b505050505f90600390565b60405163095ea7b360e01b602082019081526001600160a01b038416602483015260448083019590955293815291926154889061545a6064856105f2565b5f806001600160a01b0385169286519082855af190615477612d50565b826154d9575b50816154d257501590565b61549157505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f60448401526104c092613ed4906154cc8160648101611c5e565b82614785565b3b15919050565b805191925081159182156154f1575b5050905f61547d565b6155049250602080918301019101614770565b5f806154e856fea264697066735822122010fe3cf89a9e22b0dc7efc773a52bbb07c07cfe37d03e850ff7df1eafac48d3364736f6c634300081e0033"}
|
|
1
|
+
{"abi":[{"type":"constructor","inputs":[{"name":"_wrappedNativeTokenAddress","type":"address","internalType":"address"},{"name":"_depositQuoteTimeBuffer","type":"uint32","internalType":"uint32"},{"name":"_fillDeadlineBuffer","type":"uint32","internalType":"uint32"},{"name":"_l2Usdc","type":"address","internalType":"contract IERC20"},{"name":"_cctpTokenMessenger","type":"address","internalType":"contract ITokenMessenger"},{"name":"_oftDstEid","type":"uint32","internalType":"uint32"},{"name":"_oftFeeCap","type":"uint256","internalType":"uint256"}],"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":"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":"__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":"fxChild","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"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":"_initialDepositId","type":"uint32","internalType":"uint32"},{"name":"_polygonTokenBridger","type":"address","internalType":"contract PolygonTokenBridger"},{"name":"_crossDomainAdmin","type":"address","internalType":"address"},{"name":"_withdrawalRecipient","type":"address","internalType":"address"},{"name":"_fxChild","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"polygonTokenBridger","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract PolygonTokenBridger"}],"stateMutability":"view"},{"type":"function","name":"processMessageFromRoot","inputs":[{"name":"","type":"uint256","internalType":"uint256"},{"name":"rootMessageSender","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"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":"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":"setFxChild","inputs":[{"name":"newFxChild","type":"address","internalType":"address"}],"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":"setPolygonTokenBridger","inputs":[{"name":"newPolygonTokenBridger","type":"address","internalType":"address payable"}],"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":"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":"wrap","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"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":"ReceivedMessageFromL1","inputs":[{"name":"caller","type":"address","indexed":true,"internalType":"address"},{"name":"rootMessageSender","type":"address","indexed":true,"internalType":"address"}],"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":"SetFxChild","inputs":[{"name":"newFxChild","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":"SetPolygonTokenBridger","inputs":[{"name":"polygonTokenBridger","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":"CallValidatedAlreadySet","inputs":[]},{"type":"error","name":"CallValidatedNotSet","inputs":[]},{"type":"error","name":"ClaimedMerkleLeaf","inputs":[]},{"type":"error","name":"DelegateCallFailed","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":"MulticallExecuteLeaf","inputs":[]},{"type":"error","name":"NoRelayerRefundToClaim","inputs":[]},{"type":"error","name":"NoSlowFillsInExclusivityWindow","inputs":[]},{"type":"error","name":"NotEOA","inputs":[]},{"type":"error","name":"NotExclusiveRelayer","inputs":[]},{"type":"error","name":"NotFxChild","inputs":[]},{"type":"error","name":"NotHubPool","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":"0x6101c080604052346102c85760e081615889803803809161002082856102cc565b8339810103126102c85780516001600160a01b038116908190036102c85761004a602083016102ef565b91610057604082016102ef565b6060820151936001600160a01b03851685036102c8576080830151936001600160a01b038516938486036102c85760c061009360a083016102ef565b910151903060805260c05260a05260e05261010052610120525f549160ff8360081c166102c8575f938360ff808796160361028e575b5061016052610180528161014052604051602081019063011a412160e61b8252600481526100f86024826102cc565b51915afa3d15610287573d6001600160401b0381116102735760405190610129601f8201601f1916602001836102cc565b81523d5f602083013e5b81610267575b81610231575b506101a052604051615588908161030182396080518181816110670152818161146c01526115c3015260a05181818161179d0152615292015260c0518181816118560152614c65015260e0518181816107f001528181613ba701528181613f6b0152818161445501528181614a1c0152614a9f01526101005181818161173c0152613d8601526101205181818161047e0152613b5301526101405181818161181601528181614e7c0152614f24015261016051818181610757015281816149c70152614d63015261018051818181611e14015281816148a30152614d8c01526101a051818181611a690152614e220152f35b9050602081519101519060208110610256575b506001600160a01b031615155f61013f565b5f199060200360031b1b165f610244565b80516020149150610139565b634e487b7160e01b5f52604160045260245ffd5b6060610133565b60ff908119161784557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a15f6100c9565b5f80fd5b601f909101601f19168101906001600160401b0382119082101761027357604052565b519063ffffffff821682036102c85756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063079bd2c71461044f5780630cb84d9a1461044a5780631186ec331461044557806311eac8551461044057806313fb77ee1461043b57806315348e44146103c857806317fcb39b1461043657806319c1648c146104315780631b3d55591461042c5780631fab657c1461042757806329cb924d146104225780632e3781151461041d5780632e63e59a146104185780633659cfe6146104135780633edb89d11461040e578063437b911614610409578063450d11f014610404578063490e49ef146103ff578063493a4f84146103fa5780634f1ef286146103f55780635285e058146103f057806352d1902d146103eb578063541f4f14146103e6578063577f51f8146103e157806357f6dcb8146103dc5780636068d6cb146103d757806361a04d30146103d2578063670fa8ac146103cd5780636bbbcd2e146103c85780636e400983146103c35780636fd5c10e146103be578063738b62e5146103b95780637659f9e0146103b4578063775c0d03146103af5780637aef642c146103aa5780637b939232146103a55780637ef413e1146103a057806382e2c43f1461039b5780638a7860ce146103965780638b15788e146103915780639748cf7c1461038c57806397943aa914610387578063979f2bc21461038257806399cc29681461037d5780639a7c4b71146103785780639a8a059214610373578063a1244c671461036e578063a18a096e14610369578063ac9650d814610364578063ad5425c61461035f578063adb5a6a61461030f578063b370b7f51461035a578063b4c0d7ab14610355578063b86cfdcf14610350578063babb6aac1461034b578063c35c83fc14610346578063ceb4c98714610341578063d46eb1191461033c578063d7e1583a14610337578063dda5211314610332578063ddd224f11461032d578063de7eba7814610328578063deff4b2414610323578063ea86bd461461031e578063ee2a53f814610319578063f2c2092414610314578063f79f29ed1461030f5763fc8a584f0361000e57612b07565b612447565b6129e5565b6129a7565b612903565b612811565b6127e1565b6127b8565b612792565b61275c565b61265c565b61263e565b612613565b612534565b6124ff565b6124d0565b61248e565b6123d6565b61232d565b6121d8565b6121b1565b612197565b61204a565b611fb4565b611ec6565b611e38565b611df5565b611d84565b611d0c565b611bee565b611bb8565b611b20565b611a8e565b611a52565b61192b565b611884565b61183a565b6117fa565b6107b7565b6117c0565b611786565b611760565b611720565b6116a3565b611613565b6115a9565b611582565b611429565b6113a1565b611383565b61135c565b611285565b611199565b611040565b610e47565b610cf4565b610ccb565b610bc3565b610aa1565b610839565b6107d1565b61077b565b610738565b6106d1565b6104cd565b610462565b5f91031261045e57565b5f80fd5b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b6001600160a01b0381160361045e57565b60e435906104c0826104a2565b565b35906104c0826104a2565b3461045e57602036600319011261045e576001600160a01b036004356104f2816104a2565b165f5261087460205260206001600160a01b0360405f205416604051908152f35b608435908160070b820361045e57565b60a435908160070b820361045e57565b63ffffffff81160361045e57565b61010435906104c082610533565b61012435906104c082610533565b61014435906104c082610533565b61016435906104c082610533565b35906104c082610533565b634e487b7160e01b5f52604160045260245ffd5b6040810190811067ffffffffffffffff8211176105b457604052565b610584565b6101a0810190811067ffffffffffffffff8211176105b457604052565b6060810190811067ffffffffffffffff8211176105b457604052565b90601f8019910116810190811067ffffffffffffffff8211176105b457604052565b604051906104c060c0836105f2565b604051906104c0610180836105f2565b604051906104c06101a0836105f2565b604051906104c06080836105f2565b604051906104c060e0836105f2565b67ffffffffffffffff81116105b457601f01601f191660200190565b92919261068982610661565b9161069760405193846105f2565b82948184528183011161045e578281602093845f960137010152565b9080601f8301121561045e578160206106ce9335910161067d565b90565b61010036600319011261045e576106e96004356104a2565b6106f46024356104a2565b6106fc610513565b5061070860a435610533565b60c43567ffffffffffffffff811161045e576107289036906004016106b3565b506332ed1ba560e21b5f5260045ffd5b3461045e575f36600319011261045e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e57602036600319011261045e576107b060043561079b816104a2565b6107a361355f565b6107ab61357f565b613590565b6001606555005b3461045e575f36600319011261045e5760206040515f8152f35b3461045e575f36600319011261045e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b604090600319011261045e5760043561082c816104a2565b906024356106ce816104a2565b3461045e5761084736610814565b61084f61355f565b61085761357f565b6001600160a01b03811691821515806108f0575b6108e1576108b26001600160a01b0392610897836001600160a01b03165f5261087460205260405f2090565b906001600160a01b03166001600160a01b0319825416179055565b167f323983f5343e25b2c1396361b1b791be31484841fdfb95b8615cd02d910b1e085f80a36100186001606555565b63a63e8c6b60e01b5f5260045ffd5b50604051637e062a3560e11b8152602081600481875afa908115610959575f9161092a575b506001600160a01b038083169116141561086b565b61094c915060203d602011610952575b61094481836105f2565b8101906135d3565b5f610915565b503d61093a565b6135e8565b67ffffffffffffffff81116105b45760051b60200190565b9080601f8301121561045e57813561098d8161095e565b9261099b60405194856105f2565b81845260208085019260051b82010192831161045e57602001905b8282106109c35750505090565b81358152602091820191016109b6565b9080601f8301121561045e5781356109ea8161095e565b926109f860405194856105f2565b81845260208085019260051b82010192831161045e57602001905b828210610a205750505090565b602080918335610a2f816104a2565b815201910190610a13565b929190610a468161095e565b93610a5460405195866105f2565b602085838152019160051b810192831161045e57905b828210610a7657505050565b8135815260209182019101610a6a565b9080601f8301121561045e578160206106ce93359101610a3a565b606036600319011261045e57600435610ab981610533565b6024359067ffffffffffffffff821161045e5760c0600319833603011261045e57610ae2610614565b918060040135835260248101356020840152604481013567ffffffffffffffff811161045e57610b189060043691840101610976565b6040840152610b2960648201610579565b6060840152610b3a608482016104c2565b608084015260a48101359067ffffffffffffffff821161045e576004610b6392369201016109d3565b60a08301526044359167ffffffffffffffff831161045e57610b8c610018933690600401610a86565b91612b37565b9181601f8401121561045e5782359167ffffffffffffffff831161045e576020808501948460051b01011161045e57565b3461045e57606036600319011261045e5760043567ffffffffffffffff811161045e5780360390606060031983011261045e57602435610c0281610533565b60443567ffffffffffffffff811161045e57610c22903690600401610b92565b919093610c2d61357f565b600484013590610182190181121561045e57610cc194610cbc93610c586004610cb594880101612c99565b95610c6e610c6960808901516136b0565b6136c6565b6044610c79886133ce565b91013560208801519061016089015192610c91610614565b998a5260208a01526040890152606088015260808701525f60a08701523691610a3a565b90836136f4565b61377f565b6100186001606555565b3461045e575f36600319011261045e576020604051428152f35b908161018091031261045e5790565b3461045e57604036600319011261045e5760043567ffffffffffffffff811161045e57610d25903690600401610ce5565b602435610d3182612ca4565b6001600160a01b031691610d4760208201612ca4565b6001600160a01b031690610d5d60408201612ca4565b6001600160a01b031690610d7360608201612ca4565b6001600160a01b0316610d8860808301612ca4565b6001600160a01b031660e083013560c084013560a0850135610dad6101008701612cae565b93610dbb6101208801612cae565b95610dc96101408901612cae565b976101608101610dd891612cb8565b99909a610de3610623565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff9081166101008801521661012086015263ffffffff166101408501523690610e359261067d565b610160830152610018913391906133ff565b3461045e57602036600319011261045e5760043567ffffffffffffffff811161045e57610e78903690600401610ce5565b610e8061357f565b60ff61086b5460e01c166110315763ffffffff421690610140810190610eb883610ea984612cae565b63ffffffff9182169116101590565b6110225761012081019263ffffffff610ed085612cae565b161061101357610ee8610ee3368361267c565b6133ce565b90610efc825f5261087260205260405f2090565b5461100557610f3e610f387f3cee3e290f36226751cd0b3321b213890fe9c768e922f267fa6111836ce05c32935f5261087260205260405f2090565b60019055565b6060810135610ff860808301359260a08101359060c081013560e082013597610f75610f6f6101008501359b612cae565b91612cae565b604084013591843593610fa4610f9f610f98602089013598610160810190612cb8565b369161067d565b613881565b966040519a8b9a8b969394610120989563ffffffff9485939d9c9b98946101408b019e8b5260208b015260408a015260608901521660808701521660a085015260c084015260e08301526101008201520152565b0390a36100186001606555565b624be79160e21b5f5260045ffd5b63d642b7d960e01b5f5260045ffd5b630277ae7b60e21b5f5260045ffd5b633d90fc5560e11b5f5260045ffd5b3461045e57602036600319011261045e5760043561105d816104a2565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461045e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361045e576110c661355f565b6110ce6124b5565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561110257506100189061461f565b6040516352d1902d60e01b8152906020826004816001600160a01b0387165afa5f9281611168575b50611133575f80fd5b610018926111637f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5f9414612d0e565b61454e565b61118b91935060203d602011611192575b61118381836105f2565b810190613896565b915f61112a565b503d611179565b3461045e575f36600319011261045e5760206001600160a01b03610c5b5416604051908152f35b602060031982011261045e576004359067ffffffffffffffff821161045e576111eb91600401610b92565b9091565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061124557505050505090565b9091929394602080611276600193603f198682030187526040838b51805115158452015191818582015201906111ef565b97019301930191939290611236565b3461045e57611293366111c0565b61129d81836138e9565b6112a68161095e565b916112b460405193846105f2565b818352601f196112c38361095e565b015f5b8181106113385750505f5b8281106112ea57604051806112e68682611213565b0390f35b806113326112fa60019387612d15565b515f80611308858989612d29565b9061131860405180938193612d40565b0390305af490611326612d4d565b60208201529015159052565b016112d1565b60209060405161134781610598565b5f8152606083820152828288010152016112c6565b3461045e575f36600319011261045e5760206001600160a01b03610c5a5416604051908152f35b3461045e575f36600319011261045e5760206040516301e133808152f35b3461045e57604036600319011261045e576024356004356113c061355f565b6113c861357f565b61086c54680100000000000000008110156105b45780600163ffffffff920161086c55836113f582612984565b5084600182015555167fc86ba04c55bc5eb2f2876b91c438849a296dbec7b08751c3074d92e04f0a77af5f80a46001606555005b604036600319011261045e57600435611441816104a2565b60243567ffffffffffffffff811161045e576114619036906004016106b3565b906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680301461045e576001600160a01b037f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc54160361045e576114cb61355f565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156114ff57610018915061461f565b6040516352d1902d60e01b81526020816004816001600160a01b0386165afa5f9181611561575b5061152f575f80fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc0361045e576100189160019161454e565b61157b91925060203d6020116111925761118381836105f2565b905f611526565b3461045e575f36600319011261045e5760206001600160a01b036108695416604051908152f35b3461045e575f36600319011261045e576001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361045e5760206040517f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8152f35b61012036600319011261045e5761162b6004356104a2565b6116366024356104a2565b6116416044356104a2565b611649610523565b5061165560c435610533565b60e43567ffffffffffffffff811161045e576107289036906004016106b3565b9181601f8401121561045e5782359167ffffffffffffffff831161045e576020838186019501011161045e57565b3461045e5760c036600319011261045e576004356116c0816104a2565b602435604435916064356116d3816104a2565b60843567ffffffffffffffff811161045e576116f3903690600401611675565b9160a4359567ffffffffffffffff871161045e57611718610018973690600401611675565b969095612dcf565b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e575f36600319011261045e57602060ff61086b5460e81c166040519015158152f35b3461045e575f36600319011261045e5760206040517f00000000000000000000000000000000000000000000000000000000000000008152f35b3461045e575f36600319011261045e5760206040517f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f8152f35b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e575f36600319011261045e57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b8015150361045e57565b3461045e57602036600319011261045e577fe88463c2f254e2b070013a2dc7ee1e099f9bc00534cbdf03af551dc26ae4921960206004356118c48161187a565b6118cc61355f565b6118d461357f565b151561086b547fffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e81b8360e81b1691161761086b55604051908152a16001606555005b9060206106ce9281815201906111ef565b3461045e57602036600319011261045e5760043567ffffffffffffffff811161045e5761195c903690600401611675565b61196461355f565b61196c61357f565b810160408282031261045e57813591611984836104a2565b60208101359167ffffffffffffffff831161045e576001600160a01b03926119ac92016106b3565b91168015611a43576004825110611a34575f8083516020850182855af1906119d2612d4d565b9115611a25577f41a941b8313293eca483f41d8faa2498e005e6d7700e2e93f41d3cb7e70a897d611a0c6112e6946040519182918261191a565b0390a2611a196001606555565b6040519182918261191a565b6348ebf0a960e11b5f5260045ffd5b637f5e6be560e01b5f5260045ffd5b634e93b52160e11b5f5260045ffd5b3461045e575f36600319011261045e5760206040517f000000000000000000000000000000000000000000000000000000000000000015158152f35b61016036600319011261045e57600435611aa7816104a2565b602435611ab3816104a2565b60443591611ac0836104a2565b606435611acc816104a2565b60843560e43560c43560a435611ae1836104a2565b611ae9610541565b93611af261054f565b95610144359967ffffffffffffffff8b1161045e57611b186100189b3690600401611675565b9a9099612e71565b61018036600319011261045e57600435611b39816104a2565b602435611b45816104a2565b60443591611b52836104a2565b606435611b5e816104a2565b60843560a43560c435611b6f6104b3565b90611b78610541565b92611b8161054f565b94611b8a61055d565b96610164359a67ffffffffffffffff8c1161045e57611bb06100189c3690600401611675565b9b909a612e93565b3461045e57606036600319011261045e576020611be6600435611bda816104a2565b60243560443591612fb9565b604051908152f35b3461045e57606036600319011261045e5760043560243567ffffffffffffffff811161045e57611c22903690600401611675565b9060443567ffffffffffffffff811161045e57611c43903690600401611675565b9190936040516020810190611c6c81611c5e46898887612ff7565b03601f1981018352826105f2565b51902003611cfd575f93611c87828695611c90940190612736565b92810190613014565b51611cc7611ca5335b6001600160a01b031690565b91611c5e60405193849260208401966337bfd2c960e21b8852602485016130df565b5190305af4611cd4612d4d565b9015611cdc57005b60405163b8fe37a760e01b8152908190611cf9906004830161191a565b0390fd5b630f0c8f4760e11b5f5260045ffd5b3461045e57602036600319011261045e57600435611d2861355f565b611d3061357f565b611d3981612984565b611d71576001815f80935501557f7c1af0646963afc3343245b103731965735a893347bfa0d58a5dc77a77ae691c5f80a26001606555005b634e487b7160e01b5f525f60045260245ffd5b6101a036600319011261045e5760443560243560043560643560843560a4356101043560e43560c435611db561054f565b93611dbe61055d565b95611dc761056b565b97610184359b67ffffffffffffffff8d1161045e57611ded6100189d3690600401611675565b9c909b613101565b3461045e575f36600319011261045e5760206040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461045e5760e036600319011261045e5760043567ffffffffffffffff811161045e57611e69903690600401610ce5565b602435604435916064356084359060a43567ffffffffffffffff811161045e57611e97903690600401611675565b92909160c4359667ffffffffffffffff881161045e57611ebe610018983690600401611675565b979096613179565b3461045e57606036600319011261045e57600435611ee381610533565b60243590611ef0826104a2565b60443590611efd826104a2565b60ff5f5460081c161561045e57611f319063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b6040805192611f4082856105f2565b600984526020808501926820a1a927a9a996ab1960b91b8452611f65815191826105f2565b6005815201640312e302e360dc1b815260ff5f5460081c161561045e576005611faf936100189651902091209061047f5561048055611fa2613dbb565b611faa613dca565b613dde565b613e36565b3461045e57602036600319011261045e577f2d5b62420992e5a4afce0e77742636ca2608ef58289fd2e1baa5161ef6e7e41e6020600435611ff48161187a565b611ffc61355f565b61200461357f565b151561086b547fffffff00ffffffffffffffffffffffffffffffffffffffffffffffffffffffff60ff60e01b8360e01b1691161761086b55604051908152a16001606555005b3461045e57606036600319011261045e57602435612067816104a2565b60443567ffffffffffffffff811161045e57612087903690600401611675565b90610c5b5460ff8160a01c166121885760ff60a01b19167401000000000000000000000000000000000000000017610c5b55610c5a546120cf906001600160a01b0316611c99565b3303612179576001600160a01b036120f3611c99610869546001600160a01b031690565b931692830361216a575f91829161210f60405180938193612d40565b0390305af461211c612d4d565b501561215b57337f5185f02297526865dfbc461916f7dd8d40414c836fa469073ebea66ce68ba8635f80a361001860ff60a01b19610c5b5416610c5b55565b6318cecad560e01b5f5260045ffd5b6319ce078360e11b5f5260045ffd5b63718652d160e11b5f5260045ffd5b63680ecabb60e11b5f5260045ffd5b3461045e575f36600319011261045e576020604051468152f35b3461045e575f36600319011261045e57602063ffffffff61086b5460c01c16604051908152f35b3461045e57604036600319011261045e576004356024356121f88261426a565b6001600160a01b03821691825f5261087360205261222960405f20336001600160a01b03165f5260205260405f2090565b549283156122bf576122725f9161223f8461426a565b61225c33916001600160a01b03165f5261087360205260405f2090565b906001600160a01b03165f5260205260405f2090565b5561228f83612280836136b0565b612289856136b0565b90613e8e565b60405192835233927f6c172ea51018fb2eb2118f3f8a507c4df71eb519b8c0052834dc3c920182fef490602090a4005b6336542bf760e21b5f5260045ffd5b602081016020825282518091526040820191602060408360051b8301019401925f915b83831061230057505050505090565b909192939460208061231e600193603f1986820301875289516111ef565b970193019301919392906122f1565b3461045e5761233b366111c0565b9061234682826138e9565b61234f82613267565b915f5b81811061236757604051806112e686826122ce565b5f80612374838587612d29565b9061238460405180938193612d40565b0390305af4612391612d4d565b90156123b757906001916123a58287612d15565b526123b08186612d15565b5001612352565b604481511061045e5780602480600461045e94015183010191016132b0565b61018036600319011261045e576044356024356004356064356084356101043560e43560c43560a43561240884610533565b61241061054f565b9461241961055d565b96610164359a67ffffffffffffffff8c1161045e5761243f6100189c3690600401611675565b9b909a613313565b3461045e5760206124856001600160a01b0361246236610814565b91165f52610873835260405f20906001600160a01b03165f5260205260405f2090565b54604051908152f35b3461045e575f36600319011261045e5760206001600160a01b0361086a5416604051908152f35b604051906124c46020836105f2565b5f808352366020840137565b3461045e575f36600319011261045e576112e66124eb6124b5565b6040519182916020835260208301906111ef565b3461045e57602036600319011261045e576107b060043561251f816104a2565b61252761355f565b61252f61357f565b613f14565b3461045e5760c036600319011261045e5760043560243560443560643560843567ffffffffffffffff811161045e57612571903690600401611675565b60a4939193359067ffffffffffffffff821161045e577f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26946125ba612609933690600401611675565b9290916125c561357f565b6125ce8a61426a565b6125fd898b89896125e036888861067d565b926125ec368b8b61067d565b946001600160a01b0346921661399f565b60405196879687612d9c565b0390a36001606555005b3461045e57602036600319011261045e576004355f52610872602052602060405f2054604051908152f35b3461045e575f36600319011261045e57602060405163ffffffff8152f35b3461045e575f36600319011261045e5761267461357f565b6107b0613f57565b9190916101808184031261045e57612692610623565b92813584526020820135602085015260408201356040850152606082013560608501526080820135608085015260a082013560a085015260c082013560c085015260e082013560e08501526101008201356101008501526126f66101208301610579565b6101208501526127096101408301610579565b61014085015261016082013567ffffffffffffffff811161045e5761272e92016106b3565b610160830152565b9060208282031261045e57813567ffffffffffffffff811161045e576106ce920161267c565b3461045e57602036600319011261045e5760043567ffffffffffffffff811161045e57611be6610ee3602092369060040161267c565b3461045e575f36600319011261045e57602060ff61086b5460e01c166040519015158152f35b3461045e575f36600319011261045e5760206040516ec097ce7bc90715b34b9f10000000008152f35b3461045e57602036600319011261045e576107b0600435612801816104a2565b61280961355f565b611faa61357f565b3461045e57606036600319011261045e5760043567ffffffffffffffff811161045e5761284290369060040161267c565b602435906044359061285261357f565b60ff61086b5460e01c166110315761014081015163ffffffff166128814263ffffffff165b9163ffffffff1690565b1015806128e4575b6128d557610cc19261289a826133ce565b60c0830151602084015190610160850151926128b4610614565b958652602086015260408501526060840152608083015260a08201526137f8565b630c3a9b9d60e41b5f5260045ffd5b506128f260408201516136b0565b6001600160a01b0316331415612889565b61016036600319011261045e576044356024356004356064356101043560e43560c43560a43560843561293585610533565b610124359561294387610533565b610144359967ffffffffffffffff8b1161045e576129686100189b3690600401611675565b9a909961346b565b634e487b7160e01b5f52603260045260245ffd5b61086c548110156129a25761086c5f52600360205f20910201905f90565b612970565b3461045e57602036600319011261045e5760043561086c5481101561045e576129d1604091612984565b506001815491015482519182526020820152f35b3461045e5760a036600319011261045e57600435612a0281610533565b612a7f602435612a11816104a2565b604435612a1d816104a2565b60643590612a2a826104a2565b60843592612a37846104a2565b5f5495612a6560ff600889901c1615612a4f565b1590565b80988199612af9575b8115612ad9575b50612d0e565b86612a76600160ff195f5416175f55565b612ac257613490565b612a8557005b612a9361ff00195f54165f55565b604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a1005b612ad461010061ff00195f5416175f55565b613490565b303b15915081612aeb575b505f612a5f565b60ff1660011490505f612ae4565b600160ff8216109150612a58565b3461045e57602036600319011261045e576107b0600435612b27816104a2565b612b2f61355f565b611faf61357f565b91908051151580612c85575b612c7657612b4f61357f565b60808101612b67610c6982516001600160a01b031690565b602082019283514603612c6757612a4b612b8f91846001612b8789612984565b500154613fc0565b612c585763ffffffff7ff4ad92585b1bc117fbdd644990adf0827bc4c95baeae8a23322af807b6d0020e91612c4b6060850195612bd9612bd3885163ffffffff1690565b8961403b565b8051958051612c35612c27612c16604085019a8c612bfd8d51915163ffffffff1690565b8a516001600160a01b03169160a0890197885194614097565b9351945199519a5163ffffffff1690565b95516001600160a01b031690565b90519086604051978897169b1699339487613662565b0390a46104c06001606555565b63582f497d60e11b5f5260045ffd5b633d23e4d160e11b5f5260045ffd5b635d04968b60e11b5f5260045ffd5b503332141580612b435750333b1515612b43565b6106ce90369061267c565b356106ce816104a2565b356106ce81610533565b903590601e198136030182121561045e570180359067ffffffffffffffff821161045e5760200191813603831361045e57565b634e487b7160e01b5f52602160045260245ffd5b60031115612d0957565b612ceb565b1561045e57565b80518210156129a25760209160051b010190565b908210156129a2576111eb9160051b810190612cb8565b908092918237015f815290565b3d15612d77573d90612d5e82610661565b91612d6c60405193846105f2565b82523d5f602084013e565b606090565b908060209392818452848401375f828201840152601f01601f1916010190565b94929093612dc1926106ce979587526020870152608060408701526080860191612d7c565b926060818503910152612d7c565b92957f45e04bc8f121ba11466985789ca2822a91109f31bb8ac85504a37b7eaf873c26956001600160a01b039586612e39959a949916612e2b8a8c83612e1636888861067d565b91612e22368b8b61067d565b9346908d61399f565b604051978897169a87612d9c565b0390a3565b634e487b7160e01b5f52601160045260245ffd5b9063ffffffff8091169116019063ffffffff8211612e6c57565b612e3e565b96949290916104c09b9a9998969492612e9163ffffffff42169889612e52565b985b9593919b999897969492909b612ea761357f565b61086b5460ff8160e81c16612faa5760c01c63ffffffff1696612ec9886133b7565b612ef09063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b612ef8610633565b9d6001600160a01b038f921682526001600160a01b031690602001526001600160a01b031660408d01526001600160a01b031660608c015260808b015260a08a015260c08901526001600160a01b031660e088015263ffffffff16610100870152610120860190612f6e919063ffffffff169052565b63ffffffff1661014085015263ffffffff166101608401523690612f919261067d565b610180820152612fa090613aee565b6104c06001606555565b630b4cba3160e31b5f5260045ffd5b916040519160208301936bffffffffffffffffffffffff199060601b1684526034830152605482015260548152612ff16074826105f2565b51902090565b93929160209161300f91604087526040870191612d7c565b930152565b9081602091031261045e57604051906020820182811067ffffffffffffffff8211176105b45760405235815290565b906101806101606106ce93805184526020810151602085015260408101516040850152606081015160608501526080810151608085015260a081015160a085015260c081015160c085015260e081015160e08501526101008101516101008501526130bd61012082015161012086019063ffffffff169052565b6101408181015163ffffffff16908501520151918161016082015201906111ef565b6130f760409295949395606083526060830190613043565b9460208201520152565b9c9a999897969594939291909661311661357f565b60ff61086b5460e81c16612faa5761312f908e33612fb9565b96604051809e61313e826105b9565b81526020015260408d015260608c015260808b015260a08a015260c089015260e088015261010087015263ffffffff16610120860152612f6e565b97929095969493919661318a61357f565b60ff61086b5460e01c16611031576131a56101408a01612cae565b6131b44263ffffffff16612877565b101580613248575b6128d557612fa09861323d613243976131d8610ee3368561267c565b996131e1610614565b9a6131ec368661267c565b8c5260208c01528560408c01528660608c015261320a36868b61067d565b60808c015260a08b015261323561322184356136b0565b9860e061010086013595013595369161067d565b96369161067d565b9561399f565b6137f8565b5061325660408a01356136b0565b6001600160a01b03163314156131bc565b906132718261095e565b61327e60405191826105f2565b828152809261328f601f199161095e565b01905f5b82811061329f57505050565b806060602080938501015201613293565b60208183031261045e5780519067ffffffffffffffff821161045e570181601f8201121561045e578051906132e482610661565b926132f260405194856105f2565b8284526020838301011161045e57815f9260208093018386015e8301015290565b9b9998979694929095939161332661357f565b61086b5460ff8160e81c16612faa5760c01c63ffffffff1696613348886133b7565b61336f9063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b613377610633565b9d8e5260208e015260408d015260608c015260808b015260a08a015260c089015260e088015263ffffffff90811661010088015216610120860152612f6e565b63ffffffff1663ffffffff8114612e6c5760010190565b604051612ff1816133eb6020820194604086526060830190613043565b46604083015203601f1981018352826105f2565b91909161340a61357f565b60ff61086b5460e01c166110315761014081015163ffffffff166134334263ffffffff16612877565b10158061344c575b6128d557612fa09261289a826133ce565b5061345a60408201516136b0565b6001600160a01b031633141561343b565b9a9897959296939094919661348763ffffffff42169788612e52565b9761332661357f565b9392909360ff60a01b19610c5b5416610c5b5560ff5f5460081c161561045e576134d79063ffffffff60c01b1963ffffffff60c01b61086b549260c01b1691161761086b55565b60409384516134e686826105f2565b600981526020808201966820a1a927a9a996ab1960b91b885261350b815191826105f2565b600581520192640312e302e360dc1b845260ff5f5460081c161561045e57611faf61252f956001600160a01b039560056104c09a6135599651902091209061047f5561048055611fa2613dbb565b16613590565b60ff610c5b5460a01c161561357057565b63877d831960e01b5f5260045ffd5b60026065541461045e576002606555565b6001600160a01b0316806001600160a01b0319610c5b541617610c5b557f6ade7bc58132776cc11d9b570837a732329396078de17b87db95463ca7f5d25f5f80a2565b9081602091031261045e57516106ce816104a2565b6040513d5f823e3d90fd5b90602080835192838152019201905f5b8181106136105750505090565b8251845260209384019390920191600101613603565b90602080835192838152019201905f5b8181106136435750505090565b82516001600160a01b0316845260209384019390920191600101613636565b949695919260a0946001600160a01b0361368e81966136a2958a5260c060208b015260c08a01906135f3565b921660408801528682036060880152613626565b951515608085015216910152565b6001600160a01b03906136c28161426a565b1690565b6001600160a01b03165f526108746020526001600160a01b0360405f205416156136ec57565b6104c0613f57565b91612a4b9161377993604081519101519160405191613712836105d6565b825261377061372e602084019246845260408501958652612984565b505493604051928391613755602084019660208852516060604086015260a0850190613043565b9151606084015251608083015203601f1981018352826105f2565b519020916147b2565b612c5857565b805163ffffffff6101208201511663ffffffff429116106110135760208201519060026137b5835f5261087260205260405f2090565b54146137e9576104c09260026137d66001945f5261087260205260405f2090565b556137e460025f8484614317565b614419565b630479306360e51b5f5260045ffd5b90815163ffffffff6101208201511663ffffffff4291161061101357602083015192600161382f855f5261087260205260405f2090565b540361387a576001935b600261384e825f5261087260205260405f2090565b54146137e9576104c0945f9460026138726137e4945f5261087260205260405f2090565b558484614317565b5f93613839565b8051908161388f5750505f90565b6020012090565b9081602091031261045e575190565b9060041161045e5790600490565b356001600160e01b03198116929190600482106138ce575050565b6001600160e01b031960049290920360031b82901b16169150565b905f908190815b8183106138fe575050505050565b61392b61391e61391861391286868a612d29565b906138a5565b906138b3565b6001600160e01b03191690565b631592ca1b60e31b8114801561398f575b15613950576347306cb560e01b5f5260045ffd5b631b3d555960e01b0361397e57508261396f57600180925b01916138f0565b6347306cb560e01b5f5260045ffd5b8092935061396f5760018093613968565b506321bdc88b60e11b811461393c565b93926042936104c0979660208151910120906040519260208401947f8d1994e2bbbd77564cdca06dd819e7ee2a5efa06c80dcb59a4a7b6e39edc538f86526040850152856060850152608084015260a083015260c082015260c08152613a0660e0826105f2565b5190209061047f549061048054906040519160208301937fc2f8787176b8ac6bf7215b4adcc1e069bf4ab82d9ab1df05a57a91d425935b6e855260408401526060830152608082015260808152613a5e60a0826105f2565b519020906040519161190160f01b8352600283015260228201522090614680565b91908203918211612e6c57565b91908201809211612e6c57565b9692610140989563ffffffff9586949285936106ce9e9d9a958c5260208c015260408b015260608a01521660808801521660a08601521660c084015260e08301526101008201528161012082015201906111ef565b613af8815161426a565b6060810190815115613dad57610120810190613b24613b1b835163ffffffff1690565b63ffffffff1690565b804210908115613d74575b50613d6557610140810192613b48845163ffffffff1690565b63ffffffff613b79817f00000000000000000000000000000000000000000000000000000000000000001642613a8c565b911611613d565761016082015163ffffffff16918280613d13575b5060408101918251926001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001680941480613d0a575b15613cba5760808301513403613cab57833b1561045e575f60049460405195868092630d0e30db60e41b825234905af1908115610959577f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad394613c8c92613c91575b505b5191519260808101519060a081015160c082015197613c6b613c606101008501519b5163ffffffff1690565b9b5163ffffffff1690565b83519b60208501519361018060e0870151960151966040519a8b9a8b613a99565b0390a4565b80613c9f5f613ca5936105f2565b80610454565b5f613c32565b636452a35d60e01b5f5260045ffd5b925034613cab57613c8c83613d05613cf6611c997f32ed1a409ef04c7b0227189c3a103dc5ac10e775a15b785dcc510201f7c25ad397516136b0565b6080860151903090339061476c565b613c34565b50341515613bd0565b6301e133801015613d3e575b60e081015115613d2f575f613b94565b63495d907f60e01b5f5260045ffd5b91613d509063ffffffff421690612e52565b91613d1f565b63582e388960e01b5f5260045ffd5b63f722177f60e01b5f5260045ffd5b613d7f915042613a7f565b63ffffffff7f000000000000000000000000000000000000000000000000000000000000000016105f613b2f565b6231010160e51b5f5260045ffd5b60ff5f5460081c161561045e57565b60ff5f5460081c161561045e576001606555565b6001600160a01b03168015613e2757806001600160a01b0319610869541617610869557fa9e8c42c9e7fca7f62755189a16b2f5314d43d8fb24e91ba54e6d65f9314e8495f80a2565b63ba97b39d60e01b5f5260045ffd5b6001600160a01b03168015613e7f57806001600160a01b031961086a54161761086a557fa73e8909f8616742d7fe701153d82666f7b7cd480552e23ebb05d358c22fd04e5f80a2565b635b03092b60e11b5f5260045ffd5b6001600160a01b0316916001600160a01b036040519263a9059cbb60e01b5f521660045260245260205f60448180865af160015f5114811615613ef5575b60409190915215613eda5750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516613f0b573d15833b15151616613ecc565b503d5f823e3d90fd5b6001600160a01b0316806001600160a01b0319610c5a541617610c5a557f573834b6d6901b74ef64eeb676a0b99d7946df822b7021e44ee0da19d846c4955f80a2565b4780613f61575b50565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016803b1561045e575f90600460405180948193630d0e30db60e41b83525af1801561095957613fb65750565b5f6104c0916105f2565b6106ce929160405161377081611c5e602082019460208652805160408401526020810151606084015260a0614005604083015160c060808701526101008601906135f3565b606083015163ffffffff168583015260808301516001600160a01b031660c0860152910151838203603f190160e0850152613626565b614046600291612984565b500162ffffff8260081c1691825f5281602052600160ff60405f205492161b808092161461408857825f528160205260405f205417915f5260205260405f2055565b63954476d960e01b5f5260045ffd5b91959495939092935f968151908181510361425b5781614116575b505050826140c1575b50505050565b6001600160a01b03816140f57ffa7fa7cf6d7dde5f9be65a67e6a1a747e7aa864dcd2d793353c722d80fbbb3579386614875565b6040805195865233602087015291169463ffffffff1693a45f8080806140bb565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0389165afa908115610959575f9161423c575b505f5f5b84811061415c575050506140b2565b6141668187612d15565b51614174575b60010161414d565b9061418a906141838388612d15565b5190613a8c565b9082821161422d576141c4612a4b6141b26141a58488612d15565b516001600160a01b031690565b6141bc848a612d15565b51908a614803565b1561416c579a506141d58b86612d15565b5161422361421b8d6142066141a56141ff8c6001600160a01b03165f5261087360205260405f2090565b9289612d15565b6001600160a01b03165f5260205260405f2090565b918254613a8c565b905560019a61416c565b632ddaa83160e11b5f5260045ffd5b614255915060203d6020116111925761118381836105f2565b5f614149565b6319a5316760e31b5f5260045ffd5b60a01c61427357565b6379ec0ed760e11b5f5260045ffd5b61428b82612cff565b52565b9a98969492909c9b99979593916101e08c019d8c5260208c015260408b015260608a0152608089015263ffffffff1660a088015263ffffffff1660c087015260e08601526101008501526101208401526101408301528051610160830152602081015161018083015260408101516101a0830152606001519061431082612cff565b6101c00152565b7f44b559f101f8fbcc8a0ea43fa91a05a729a5ea6e14a7c75aa750374690137208909392936060830151613c8c60808501519260a08601519660c08701519660a08301519860e0820151986101008301519a61437b61012085015163ffffffff1690565b61014085015163ffffffff16916040860151938651956143df6143a761016060208b01519a0151613881565b9960608c01519b60406143bd6080830151613881565b9101519060206143cb610643565b9e8f528e015260408d015260608c01614282565b6040519c8d9c8d61428e565b906106ce94936080936001600160a01b038093168452602084015216604082015281606082015201906111ef565b9060806144279101516136b0565b91608060408301519261443d60608201516136b0565b92846001600160a01b03871691856001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001684145f1461452e57501561451a575b61449891506001600160a01b0385166149f7565b0151908151151580614510575b6144af5750505050565b6001600160a01b0316803b1561045e576144e5935f809460405196879586948593633a5be8cb60e01b85523391600486016143eb565b03925af18015610959576144fc575b8080806140bb565b80613c9f5f61450a936105f2565b5f6144f4565b50803b15156144a5565b614527913090339061476c565b5f84614484565b906145435761453e92339061476c565b614498565b61453e925087613e8e565b916145588361461f565b6001600160a01b0383167fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b5f80a281511590811591614617575b5061459b575050565b613f5e915f80604051936145b06060866105f2565b602785527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c60208601527f206661696c6564000000000000000000000000000000000000000000000000006040860152602081519101845af4614611612d4d565b916153bd565b90505f614592565b803b1561045e576001600160a01b03166001600160a01b03197f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5416177f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b91909161468d828461509d565b9390926005851015612d09576146b694159384614756575b5083156146cb575b50505015151590565b6146bc57565b63938a182160e01b5f5260045ffd5b5f935090611c5e6147038594936040519283916020830195630b135d3f60e11b875260248401526040604484015260648301906111ef565b51915afa61470f612d4d565b81614748575b81614724575b505f80806146ad565b9050614741630b135d3f60e11b9160208082518301019101613896565b145f61471b565b905060208151101590614715565b6001600160a01b0384811691161493505f6146a5565b9091926001600160a01b036104c09481604051956323b872dd60e01b60208801521660248601521660448401526064830152606482526147ad6084836105f2565b614ae8565b929091905f915b84518310156147fb576147cc8386612d15565b5190818110156147ea575f52602052600160405f205b9201916147b9565b905f52602052600160405f206147e2565b915092501490565b60405163a9059cbb60e01b60208281019182526001600160a01b039094166024830152604482019490945290925f9161483f8160648101611c5e565b519082855af1903d5f519083614856575b50505090565b9192509061486b57503b15155b5f8080614850565b6001915014614863565b6148a1614894836001600160a01b03165f5261087460205260405f2090565b546001600160a01b031690565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161515806149bc575b156148f0575061086a546104c092506001600160a01b0316614d57565b6001600160a01b0316918215614926576104c0926001600160a01b0361491f61086a546001600160a01b031690565b9216614c1e565b6001600160a01b03919250166149528261494c611c99610c5b546001600160a01b031690565b83614b73565b614968611c99610c5b546001600160a01b031690565b91823b1561045e57604051633419e74d60e21b81526001600160a01b039290921660048301526024820152905f908290604490829084905af18015610959576149ae5750565b80613c9f5f6104c0936105f2565b506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000166001600160a01b038416146148d3565b906001600160a01b038216803b158015614ac4575b15614a9057506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691823b1561045e57604051632e1a7d4d60e01b815260048101839052925f908490602490829084905af1928315610959576104c093614a7c575b50615075565b80613c9f5f614a8a936105f2565b5f614a76565b6104c092506001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016613e8e565b50614ace81615003565b614a0c565b9081602091031261045e57516106ce8161187a565b906001600160a01b03614b4392165f8060405193614b076040866105f2565b602085527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564602086015260208151910182855af1614611612d4d565b8051908115918215614b59575b50501561045e57565b614b6c9250602080918301019101614ad3565b5f80614b50565b604051636eb1769f60e11b81523060048201526001600160a01b0383166024820152602081806044810103816001600160a01b0386165afa908115610959576104c0946147ad92614bcb925f91614bff575b50613a8c565b60405163095ea7b360e01b60208201526001600160a01b0394909416602485015260448085019190915283526064836105f2565b614c18915060203d6020116111925761118381836105f2565b5f614bc5565b92919091614c2a6150ce565b50614c33615115565b50614c3c6124b5565b614c446124b5565b90614c4d6124b5565b926001600160a01b03614c5e610652565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152951660208601528060408601526060850152608084015260a083015260c082015260405191633b6f743b60e01b835260408380614cc785600483016151d6565b03816001600160a01b0385165afa928315610959575f93614d26575b5082513410614d17576104c093614cfb845134613a7f565b80614d07575b5061528c565b614d119033615075565b5f614d01565b63557a94ff60e11b5f5260045ffd5b614d4991935060403d604011614d50575b614d4181836105f2565b810190615155565b915f614ce3565b503d614d37565b6001600160a01b0316907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692614db8838584614b73565b6040516332dd704760e21b815291602083600481885afa928315610959575f93614fd9575b506040516352b7631960e11b81526001600160a01b0391821660048201819052949093909160209185916024918391165afa928315610959575f93614fb8575b5092837f0000000000000000000000000000000000000000000000000000000000000000945b614e4f57505050505050565b83811115614fb257835b8515614f0e57863b1561045e57604051634701287760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b03841660648201525f6084820181905260a482018190526107d060c48301529092908360e481838c5af192831561095957614ef493614efa575b50613a7f565b80614e43565b80613c9f5f614f08936105f2565b5f614eee565b6040516337e9a82760e11b8152600481018290527f000000000000000000000000000000000000000000000000000000000000000063ffffffff166024820152604481018590526001600160a01b0384166064820152916020836084815f8c5af192831561095957614ef493614f845750613a7f565b614fa49060203d8111614fab575b614f9c81836105f2565b8101906153a9565b505f614eee565b503d614f92565b80614e59565b614fd291935060203d6020116111925761118381836105f2565b915f614e1d565b6001600160a01b03919350614ffc9060203d6020116109525761094481836105f2565b9290614ddd565b803b61500e81610661565b9061501c60405192836105f2565b8082525f6020830180943c5190516001600160e81b03198116919060038210615056575b50506001600160e81b03191661ef0160f01b1490565b6001600160e81b0319600392830390921b82901b161690505f80615040565b81471061045e575f8080936001600160a01b038294165af1615095612d4d565b501561045e57565b9060418151145f146150c5576111eb91602082015190606060408401519301515f1a906153e8565b50505f90600290565b6040519060e0820182811067ffffffffffffffff8211176105b457604052606060c0835f81525f60208201525f60408201525f838201528260808201528260a08201520152565b6040519061512282610598565b5f6020838281520152565b919082604091031261045e5760405161514581610598565b6020808294805184520151910152565b9060408282031261045e576106ce9161512d565b6106ce9163ffffffff825116815260208201516020820152604082015160408201526060820151606082015260c06151c56151b3608085015160e0608086015260e08501906111ef565b60a085015184820360a08601526111ef565b9201519060c08184039101526111ef565b9190602061300f5f92604086526040860190615169565b519067ffffffffffffffff8216820361045e57565b919082810360c0811261045e5760801361045e576106ce906080604051615228816105d6565b85518152615238602087016151ed565b602082015261524a836040880161512d565b6040820152940161512d565b9193926001600160a01b03906020615278606094608087526080870190615169565b968051828701520151604085015216910152565b918351927f0000000000000000000000000000000000000000000000000000000000000000841161539a5747841161538b57602085015161537c576001600160a01b0394615308946152ea60c0956040860151988991168095615463565b60405180968195829463c7c7f5b360e01b8452309160048501615256565b03925af1908115610959575f9161534b575b506020810151820361533c57510361532e57565b623c548b60ea1b5f5260045ffd5b631bfc3cb560e11b5f5260045ffd5b61536d915060c03d60c011615375575b61536581836105f2565b810190615202565b90505f61531a565b503d61535b565b630e282ec960e21b5f5260045ffd5b63a6226f8560e01b5f5260045ffd5b631754d7a960e01b5f5260045ffd5b9081602091031261045e576106ce906151ed565b919250156153d9578151156153d0575090565b3b1561045e5790565b50805190811561045e57602001fd5b7f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411615458576020935f9360ff60809460405194855216868401526040830152606082015282805260015afa15610959575f516001600160a01b0381161561545057905f90565b505f90600190565b505050505f90600390565b60405163095ea7b360e01b602082019081526001600160a01b038416602483015260448083019590955293815291926154cf906154a16064856105f2565b5f806001600160a01b0385169286519082855af1906154be612d4d565b82615520575b508161551957501590565b6154d857505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f60448401526104c0926147ad906155138160648101611c5e565b82614ae8565b3b15919050565b80519192508115918215615538575b5050905f6154c4565b61554b9250602080918301019101614ad3565b5f8061552f56fea264697066735822122025faa434dea32715ced99d5fa5221fc48be95f622dd88ede42cd8c48089cc9b164736f6c634300081e0033"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"abi":[{"type":"function","name":"verifyProof","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"}],"bytecode":"
|
|
1
|
+
{"abi":[{"type":"function","name":"verifyProof","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"},{"name":"","type":"bytes","internalType":"bytes"},{"name":"","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"pure"}],"bytecode":"0x6080806040523460135760d4908160188239f35b5f80fdfe608060405260043610156010575f80fd5b5f3560e01c6341493c60146022575f80fd5b34606f576060366003190112606f5760243567ffffffffffffffff8111606f57604e9036906004016073565b505060443567ffffffffffffffff8111606f57606d9036906004016073565b005b5f80fd5b9181601f84011215606f5782359167ffffffffffffffff8311606f5760208381860195010111606f5756fea2646970667358221220dbf58c2bcd4e8a076e34614c75d4fe1312212170b3728a64dc3ab6936df2cae864736f6c634300081e0033"}
|