[ { "inputs": [ { "internalType": "address", "name": "_lzEndpoint", "type": "address" }, { "internalType": "contract IYieldBoxBase", "name": "_yieldBox", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_hash", "type": "bytes32" } ], "name": "CallOFTReceivedSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "old", "type": "address" }, { "indexed": true, "internalType": "address", "name": "_new", "type": "address" } ], "name": "ConservatorUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_old", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_new", "type": "uint256" } ], "name": "FlashMintFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_old", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_new", "type": "uint256" } ], "name": "MaxFlashMintUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "indexed": false, "internalType": "bytes", "name": "_reason", "type": "bytes" } ], "name": "MessageFailed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_address", "type": "address" } ], "name": "NonContractAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "oldState", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "newState", "type": "bool" } ], "name": "PausedUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "ReceiveFromChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "indexed": false, "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "indexed": false, "internalType": "bytes32", "name": "_payloadHash", "type": "bytes32" } ], "name": "RetryMessageSuccess", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": true, "internalType": "address", "name": "_from", "type": "address" }, { "indexed": true, "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "SendToChain", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_for", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "SetBurnerStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "indexed": false, "internalType": "uint16", "name": "_type", "type": "uint16" }, { "indexed": false, "internalType": "uint256", "name": "_minDstGas", "type": "uint256" } ], "name": "SetMinDstGas", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_for", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "_status", "type": "bool" } ], "name": "SetMinterStatus", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "precrime", "type": "address" } ], "name": "SetPrecrime", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "SetTrustedRemote", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "indexed": false, "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "SetTrustedRemoteAddress", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "_useCustomAdapterParams", "type": "bool" } ], "name": "SetUseCustomAdapterParams", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_PAYLOAD_SIZE_LIMIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "NO_EXTRA_GAS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PT_SEND", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PT_SEND_AND_CALL", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowedBurner", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowedMinter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes32", "name": "_from", "type": "bytes32" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "uint256", "name": "_gasForCall", "type": "uint256" } ], "name": "callOnOFTReceived", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "circulatingSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "conservator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "creditedPackets", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "uint64", "name": "_dstGasForCall", "type": "uint64" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendAndCallFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bool", "name": "_useZro", "type": "bool" }, { "internalType": "bytes", "name": "_adapterParams", "type": "bytes" } ], "name": "estimateSendFee", "outputs": [ { "internalType": "uint256", "name": "nativeFee", "type": "uint256" }, { "internalType": "uint256", "name": "zroFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "bytes", "name": "", "type": "bytes" }, { "internalType": "uint64", "name": "", "type": "uint64" } ], "name": "failedMessages", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flashMintFee", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "forceResumeReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" } ], "name": "getConfig", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" } ], "name": "getTrustedRemoteAddress", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "collateralAmount", "type": "uint256" }, { "internalType": "uint256", "name": "borrowAmount", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct IUSDOBase.ILeverageSwapData", "name": "swapData", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "srcExtraGasLimit", "type": "uint256" }, { "internalType": "uint16", "name": "lzSrcChainId", "type": "uint16" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "dstAirdropAdapterParam", "type": "bytes" }, { "internalType": "bytes", "name": "srcAirdropAdapterParam", "type": "bytes" }, { "internalType": "address", "name": "refundAddress", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageLZData", "name": "lzData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "swapper", "type": "address" }, { "internalType": "address", "name": "magnetar", "type": "address" }, { "internalType": "address", "name": "tOft", "type": "address" }, { "internalType": "address", "name": "srcMarket", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageExternalContractsData", "name": "externalData", "type": "tuple" }, { "internalType": "bytes", "name": "airdropAdapterParams", "type": "bytes" }, { "components": [ { "internalType": "bool", "name": "permitAll", "type": "bool" }, { "internalType": "bool", "name": "allowFailure", "type": "bool" }, { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "permitBorrow", "type": "bool" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "internalType": "struct ICommonData.IApproval[]", "name": "approvals", "type": "tuple[]" } ], "name": "initMultiHopBuy", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "isLdChain", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" } ], "name": "isTrustedRemote", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "module", "type": "address" }, { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "leverageUp", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct IUSDOBase.ILeverageSwapData", "name": "swapData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "swapper", "type": "address" }, { "internalType": "address", "name": "magnetar", "type": "address" }, { "internalType": "address", "name": "tOft", "type": "address" }, { "internalType": "address", "name": "srcMarket", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageExternalContractsData", "name": "externalData", "type": "tuple" }, { "components": [ { "internalType": "uint256", "name": "srcExtraGasLimit", "type": "uint256" }, { "internalType": "uint16", "name": "lzSrcChainId", "type": "uint16" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "dstAirdropAdapterParam", "type": "bytes" }, { "internalType": "bytes", "name": "srcAirdropAdapterParam", "type": "bytes" }, { "internalType": "address", "name": "refundAddress", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageLZData", "name": "lzData", "type": "tuple" }, { "internalType": "address", "name": "leverageFor", "type": "address" } ], "name": "leverageUpInternal", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "lzEndpoint", "outputs": [ { "internalType": "contract ILayerZeroEndpoint", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "lzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxFlashMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "minDstGasLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "multiHop", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "nonblockingLzReceive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "payloadSizeLimitLookup", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "precrime", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_srcAddress", "type": "bytes" }, { "internalType": "uint64", "name": "_nonce", "type": "uint64" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" } ], "name": "retryMessage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "bytes", "name": "_payload", "type": "bytes" }, { "internalType": "uint64", "name": "_dstGasForCall", "type": "uint64" }, { "components": [ { "internalType": "address payable", "name": "refundAddress", "type": "address" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" } ], "internalType": "struct ICommonOFT.LzCallParams", "name": "_callParams", "type": "tuple" } ], "name": "sendAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "address", "name": "leverageFor", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "srcExtraGasLimit", "type": "uint256" }, { "internalType": "uint16", "name": "lzSrcChainId", "type": "uint16" }, { "internalType": "uint16", "name": "lzDstChainId", "type": "uint16" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "dstAirdropAdapterParam", "type": "bytes" }, { "internalType": "bytes", "name": "srcAirdropAdapterParam", "type": "bytes" }, { "internalType": "address", "name": "refundAddress", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageLZData", "name": "lzData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "tokenOut", "type": "address" }, { "internalType": "uint256", "name": "amountOutMin", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct IUSDOBase.ILeverageSwapData", "name": "swapData", "type": "tuple" }, { "components": [ { "internalType": "address", "name": "swapper", "type": "address" }, { "internalType": "address", "name": "magnetar", "type": "address" }, { "internalType": "address", "name": "tOft", "type": "address" }, { "internalType": "address", "name": "srcMarket", "type": "address" } ], "internalType": "struct IUSDOBase.ILeverageExternalContractsData", "name": "externalData", "type": "tuple" } ], "name": "sendForLeverage", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_from", "type": "address" }, { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "bytes32", "name": "_toAddress", "type": "bytes32" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "components": [ { "internalType": "address payable", "name": "refundAddress", "type": "address" }, { "internalType": "address", "name": "zroPaymentAddress", "type": "address" }, { "internalType": "bytes", "name": "adapterParams", "type": "bytes" } ], "internalType": "struct ICommonOFT.LzCallParams", "name": "_callParams", "type": "tuple" } ], "name": "sendFrom", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" }, { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "uint256", "name": "_configType", "type": "uint256" }, { "internalType": "bytes", "name": "_config", "type": "bytes" } ], "name": "setConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_chainId", "type": "uint16" }, { "internalType": "bool", "name": "_isLdChain", "type": "bool" } ], "name": "setLdChain", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint16", "name": "_packetType", "type": "uint16" }, { "internalType": "uint256", "name": "_minGas", "type": "uint256" } ], "name": "setMinDstGas", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_dstChainId", "type": "uint16" }, { "internalType": "uint256", "name": "_size", "type": "uint256" } ], "name": "setPayloadSizeLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_precrime", "type": "address" } ], "name": "setPrecrime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setReceiveVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_version", "type": "uint16" } ], "name": "setSendVersion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_srcChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_path", "type": "bytes" } ], "name": "setTrustedRemote", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "_remoteChainId", "type": "uint16" }, { "internalType": "bytes", "name": "_remoteAddress", "type": "bytes" } ], "name": "setTrustedRemoteAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_useCustomAdapterParams", "type": "bool" } ], "name": "setUseCustomAdapterParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "sharedDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint16", "name": "", "type": "uint16" } ], "name": "trustedRemoteLookup", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "useCustomAdapterParams", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "yieldBox", "outputs": [ { "internalType": "contract IYieldBoxBase", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
61010060409080825234620004be57818162005f958038038091620000258285620004c3565b833981010312620004be5780516001600160a01b038082169291839003620004be57602080920151928184168403620004be5762000062620004fd565b916200006d620004fd565b60008054336001600160a01b03198216811783559194919084167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08680a3608052600860a05283516001600160401b0391828211620003c557600b54916001968784811c94168015620004b3575b898510146200049f578190601f948581116200044b575b508990858311600114620003e5578892620003d9575b5050600019600383901b1c191690871b17600b555b8051928311620003c557600c548681811c91168015620003ba575b88821014620003a65790818389959493116200034e575b5083918311600114620002e3576004949291869183620002d7575b5050600019600383901b1c191690861b17600c555b6402540be40060c052608051168751928380926303408e4760e41b82525afa908115620002cd5790829187939162000282575b5061ffff1693848252600f815282822033835281528282209460ff1995858782541617905582526010815282822090338352522091825416179055600a60125569152d02c7e14af680000060135560e05251615a6690816200052f82396080518181816104fd015281816107c00152818161091501528181610a8f01528181610caf015281816116b80152818161214b0152818161239601528181612a92015281816147bd01528181614ba6015261564d015260a051816117f8015260c051816156a7015260e051816125cc0152f35b80929350858092503d8311620002c5575b6200029f8183620004c3565b81010312620002c1575161ffff81168103620002c15785919061ffff620001b2565b5080fd5b503d62000293565b86513d84823e3d90fd5b0151905038806200016a565b93918691601f19821690600c885285882091885b8181106200033557509683600498106200031b575b505050811b01600c556200017f565b015160001960f88460031b161c191690553880806200030c565b8289015184558b978b96909401939283019201620002f7565b9091929350600c86528786208380860160051c8201928a87106200039c575b9189918b97969594930160051c01915b8281106200038d5750506200014f565b8881558a96508991016200037d565b925081926200036d565b634e487b7160e01b86526022600452602486fd5b90607f169062000138565b634e487b7160e01b85526041600452602485fd5b01519050388062000108565b600b89528a89208a94509190601f1984168a5b8d8282106200043457505084116200041a575b505050811b01600b556200011d565b015160001960f88460031b161c191690553880806200040b565b8385015186558d97909501949384019301620003f8565b909150600b88528988208580850160051c8201928c861062000495575b918b91869594930160051c01915b82811062000486575050620000f2565b8a81558594508b910162000476565b9250819262000468565b634e487b7160e01b87526022600452602487fd5b93607f1693620000db565b600080fd5b601f909101601f19168101906001600160401b03821190821017620004e757604052565b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620004e75760405260048252635553444f60e01b602083015256fe6080604052600436101561001b575b361561001957600080fd5b005b60003560e01c80621d35671461042057806301ffc9a71461041b57806306fdde031461041657806307e0db1714610411578063095ea7b31461040c5780630df374831461040757806310ddb1371461040257806318160ddd1461038a57806323b872dd146103fd578063313ce567146103f8578063365260b4146103f357806339509351146103ee5780633b597150146103e95780633d8b38f6146103e45780633f1f4fa4146103df57806342d65a8d146103da57806344770515146103d0578063462bae65146103d55780634c42899a146103d05780635b8c41e6146103cb5780635c975abb146103c657806366ad5c8a146103c1578063695ef6bf146103bc57806370a08231146103b7578063715018a6146103b25780637533d788146103ad57806376203b48146103a8578063796fd43a146103a3578063857749b01461039e57806386263568146103995780638cfd8f5c146103945780638da5cb5b1461038f5780639358928b1461038a578063940a1dc014610385578063950c8a741461038057806395d89b411461037b5780639bb1bec6146103765780639bdb9812146103715780639d3f4d1a1461036c5780639f38369a14610367578063a193661114610362578063a457c2d71461035d578063a4c51df514610358578063a6c3d16514610353578063a9059cbb1461034e578063b353aaa714610349578063ba03a8d714610344578063baf3292d1461033f578063bf2271ab1461033a578063c446183414610335578063cbed8b9c14610330578063ce8849ed1461032b578063d1deba1f14610326578063dd62ed3e14610321578063de4065771461031c578063df2a5b3b14610317578063e6a20ae614610312578063eab45d9c1461030d578063eaffd49a14610308578063eb8d72b714610303578063ec6d062b146102fe578063ed629c5c146102f9578063f2fde38b146102f4578063f5ecbdbc146102ef5763fc0c546a0361000e57612afc565b612a28565b612973565b612950565b612918565b6127ef565b612766565b612704565b6126e8565b6125fb565b6125b6565b61256c565b612434565b61240b565b612342565b612325565b612284565b6121e3565b6121ab565b612135565b61210b565b611fa9565b611f12565b611e66565b611dba565b611c18565b611bfa565b611baf565b6119cd565b611929565b611900565b6118e2565b610976565b6118b9565b61185a565b61181c565b6117de565b611635565b6113e8565b611391565b61125d565b611220565b61113d565b6110a9565b611086565b611032565b610d16565b610eb9565b610c95565b610c5c565b610bec565b610b5d565b610b0d565b610a05565b6109d4565b610994565b6108ec565b6108ad565b610878565b610797565b6106b7565b6105fa565b6104e6565b61ffff81160361043157565b600080fd5b359061044182610425565b565b9181601f84011215610431578235916001600160401b038311610431576020838186019501011161043157565b6001600160401b0381160361043157565b9060806003198301126104315760043561049a81610425565b916001600160401b039060243582811161043157816104bb91600401610443565b939093926044356104cb81610470565b92606435918211610431576104e291600401610443565b9091565b34610431576104f436610481565b929493919291907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036105b55761057a61058292610019976105736105596105548a61ffff166000526001602052604060002090565b611376565b80519081841491826105ab575b5081610588575b506146c6565b3691610e67565b923691610e67565b92614971565b9050610595368486610e67565b602081519101209060208151910120143861056d565b1515915038610566565b60405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c657200006044820152606490fd5b346104315760203660031901126104315760043563ffffffff60e01b811680910361043157602090631f7ecdf760e01b811490811561063f575b506040519015158152f35b6301ffc9a760e01b14905038610634565b600091031261043157565b60005b83811061066e5750506000910152565b818101518382015260200161065e565b906020916106978151809281855285808601910161065b565b601f01601f1916010190565b9060206106b492818152019061067e565b90565b34610431576000806003193601126107945760405181600b546106d9816112a6565b8084529060019081811690811561076c5750600114610713575b61070f8461070381880382610db1565b604051918291826106a3565b0390f35b600b8352602094507f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db95b828410610759575050508161070f9361070392820101936106f3565b805485850187015292850192810161073d565b61070f96506107039450602092508593915060ff191682840152151560051b820101936106f3565b80fd5b346104315760006020366003190112610794576004356107b681610425565b6107be612b17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908290823b1561083257602461ffff918360405195869485936307e0db1760e01b85521660048401525af1801561082d57610821575080f35b61082a90610d48565b80f35b6132f0565b5080fd5b6001600160a01b031690565b6001600160a01b0381160361043157565b60e4359061044182610842565b6004359061044182610842565b359061044182610842565b34610431576040366003190112610431576108a260043561089881610842565b6024359033612d30565b602060405160018152f35b346104315760403660031901126104315761ffff6004356108cd81610425565b6108d5612b17565b166000526003602052602435604060002055600080f35b3461043157600060203660031901126107945760043561090b81610425565b610913612b17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316908290823b1561083257602461ffff918360405195869485936310ddb13760e01b85521660048401525af1801561082d57610821575080f35b34610431576000366003190112610431576020600a54604051908152f35b34610431576060366003190112610431576108a26004356109b481610842565b6024356109c081610842565b604435916109cf833383612e49565b612c61565b3461043157600036600319011261043157602060405160128152f35b8015150361043157565b3590610441826109f0565b346104315760a036600319011261043157600435610a2281610425565b60643590610a2f826109f0565b608435906001600160401b03821161043157610a546105736040933690600401610443565b90610a8b610a6e610a66604435615240565b6024356152dd565b928451958694859463040a7bb160e41b8652309060048701614d1a565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561082d576000908192610adc575b50604080519182526020820192909252f35b9050610aff915060403d8111610b06575b610af78183610db1565b810190613c19565b9038610aca565b503d610aed565b3461043157604036600319011261043157600435610b2a81610842565b336000526009602052610b41816040600020612194565b546024358101809111610b58576108a29133612d30565b612b6f565b3461043157604036600319011261043157600435610b7a81610425565b61ffff60243591610b8a836109f0565b610b92612b17565b16600052600d60205260406000209060ff801983541691151516179055600080f35b90604060031983011261043157600435610bcd81610425565b91602435906001600160401b038211610431576104e291600401610443565b3461043157602061ffff610c39610c0236610bb4565b9390911660005260018452610c24610c2b6040600020604051928380926112e0565b0382610db1565b848151910120923691610e67565b82815191012014604051908152f35b61ffff166000526007602052604060002090565b346104315760203660031901126104315761ffff600435610c7c81610425565b1660005260036020526020604060002054604051908152f35b3461043157610ca336610bb4565b9190610cad612b17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561043157604051928380926342d65a8d60e01b825281610d046000988997889460048501614902565b03925af1801561082d57610821575080f35b3461043157600036600319011261043157602060405160008152f35b634e487b7160e01b600052604160045260246000fd5b6001600160401b038111610d5b57604052565b610d32565b608081019081106001600160401b03821117610d5b57604052565b606081019081106001600160401b03821117610d5b57604052565b604081019081106001600160401b03821117610d5b57604052565b601f909101601f19168101906001600160401b03821190821017610d5b57604052565b6040519060e082016001600160401b03811183821017610d5b57604052565b6040519061016082016001600160401b03811183821017610d5b57604052565b6040519061044182610d60565b6040519060a082016001600160401b03811183821017610d5b57604052565b6040519061044182610d96565b6001600160401b038111610d5b57601f01601f191660200190565b929192610e7382610e4c565b91610e816040519384610db1565b829481845281830111610431578281602093846000960137010152565b9080601f83011215610431578160206106b493359101610e67565b34610431576020366003190112610431576004356001600160401b0380821161043157610eff610ef0610f48933690600401610e9e565b6020808251830101910161366a565b9198959750939550809892919851610fa1575b50610f3f610f2e610f29610f296060870151610836565b610836565b9585610f38615638565b91166152ac565b93610f38615638565b93833b1561043157610f7e600096928793604051998a988997889663142ce9ab60e31b885260018060a01b0316600488016137df565b03925af1801561082d57610f8e57005b80610f9b61001992610d48565b80610650565b610faa906142df565b38610f12565b90606060031983011261043157600435610fc981610425565b91602435906001600160401b03821161043157610fe891600401610e9e565b906044356106b481610470565b60209061100f92826040519483868095519384920161065b565b82019081520301902090565b9060018060401b0316600052602052604060002090565b3461043157602061107d61ffff61106f8361104c36610fb0565b94909116600052600582526040600020826040519483868095519384920161065b565b82019081520301902061101b565b54604051908152f35b3461043157600036600319011261043157602060ff601154166040519015158152f35b34610431576110b736610481565b91929493903033036110db5761057a6110d592610019973691610e67565b92614d5e565b60405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b6064820152608490fd5b908160609103126104315790565b60a03660031901126104315760043561115581610842565b60243561116181610425565b604435916084356001600160401b03811161043157602061ffff61119860008051602061597183398151915293369060040161112f565b9361120b85356111a781610842565b6111c561057386890135986111bb8a610842565b6040810190613362565b6111cf818a615142565b6111e46111dd6064356152bf565b508561549b565b976111f0891515614efa565b6112026111fc8a615240565b8c6152dd565b9234938b614779565b6040519485526001600160a01b0316941692a4005b346104315760203660031901126104315760043561123d81610842565b60018060a01b031660005260086020526020604060002054604051908152f35b346104315760008060031936011261079457611277612b17565b80546001600160a01b03198116825581906001600160a01b03166000805160206159d18339815191528280a380f35b90600182811c921680156112d6575b60208310146112c057565b634e487b7160e01b600052602260045260246000fd5b91607f16916112b5565b90600092918054916112f1836112a6565b9182825260019384811690816000146113535750600114611313575b50505050565b90919394506000526020928360002092846000945b83861061133f57505050500101903880808061130d565b805485870183015294019385908201611328565b9294505050602093945060ff191683830152151560051b0101903880808061130d565b9061044161138a92604051938480926112e0565b0383610db1565b346104315760203660031901126104315761ffff6004356113b181610425565b16600052600160205261070f610c246113d46040600020604051928380926112e0565b60405191829160208352602083019061067e565b60e03660031901126104315760043561140081610842565b60243561140c81610425565b604435916001600160401b039060843582811161043157611431903690600401610443565b91909260a4359161144183610470565b60c4358281116104315761145990369060040161112f565b9261149084359561146987610842565b61148861147e6020880135976111bb89610842565b9990923691610e67565b973691610e67565b9460ff60065416600014611584576022865110611540578560209561120261120b9461150e8c6114fb61ffff9a8b60226000805160206159718339815191529f0151931660005260028d5284166114f560406000206001600052602052604060002090565b54612ba1565b90611507821515615197565b10156151e0565b61152361151c6064356152bf565b508861549b565b9a61152f8c1515614efa565b8d6115398d615240565b9033615358565b60405162461bcd60e51b815260206004820152601c60248201527b4c7a4170703a20696e76616c69642061646170746572506172616d7360201b6044820152606490fd5b9480949350516115b1576000805160206159718339815191529460209461ffff9461120261120b9461150e565b60405162461bcd60e51b815260206004820152602660248201527f4f4654436f72653a205f61646170746572506172616d73206d7573742062652060448201526532b6b83a3c9760d11b6064820152608490fd5b908160e09103126104315790565b608090608319011261043157608490565b60809060a31901126104315760a490565b6101003660031901126104315760243561164e81610842565b6001600160401b03906044358281116104315761166f903690600401611605565b916064359081116104315761168890369060040161112f565b9161169236611613565b9061169e6004356152bf565b506040516303408e4760e41b8152909490936020856004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561082d576117396117889561172b61177d9461178f99611783976117b0575b5061170f8b3361549b565b508761171a8c615240565b9360405196879533602088016132fc565b03601f198101835282610db1565b604084019361174785613086565b91611757610f2960c08401613090565b9061177261176760608501613090565b936080810190613362565b959034963691610e67565b93614779565b613086565b61ffff1690565b604051918252339182919060008051602061597183398151915290602090a4005b6117d09060203d81116117d7575b6117c88183610db1565b8101906132db565b5038611704565b503d6117be565b3461043157600036600319011261043157602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346104315760203660031901126104315761ffff60043561183c81610425565b16600052600d602052602060ff604060002054166040519015158152f35b3461043157604036600319011261043157602061107d60043561187c81610425565b61ffff6024359161188c83610425565b166000526002835260406000209061ffff16600052602052604060002090565b6001600160a01b03169052565b34610431576000366003190112610431576000546040516001600160a01b039091168152602090f35b34610431576000366003190112610431576020601254604051908152f35b34610431576000366003190112610431576004546040516001600160a01b039091168152602090f35b34610431576000806003193601126107945760405181600c5461194b816112a6565b8084529060019081811690811561076c57506001146119745761070f8461070381880382610db1565b600c8352602094507fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c75b8284106119ba575050508161070f9361070392820101936106f3565b805485850187015292850192810161199e565b346104315760a0366003190112610431576004356119ea81610842565b6024356119f681610425565b6001600160401b0360443581811161043157611a16903690600401610e9e565b9160643592611a2484610470565b608435908382116104315784938392611a41903690600401610e9e565b805181016020016020820190611a569161382c565b6001600160a01b03169d919b90988e989196509450909290611a76615638565b911690611a82916152ac565b9a8b928392611a903061217a565b549983611a9c8d610c48565b611aa69089610ff5565b90611ab09161101b565b5460ff16156000805160206159b18339815191529e61ffff9e6000978897611b0794611b73575b50505061172b611ae63061217a565b549c604051948593602085019763a193661160e01b89528c602487016138b6565b51915af494611b146138f3565b9515611b3d575b50505050505050611b386040519283921694829190602083019252565b0390a3005b611b5796611b4a91613941565b1015611b63575b85614a05565b38808080808881611b1b565b611b6e898b30613969565b611b51565b611b95611b8f611ba794611b8a611b9a95306155b1565b610c48565b8d610ff5565b61101b565b805460ff19166001179055565b8d888b611ad7565b3461043157602060ff611bee61ffff61106f84611bcb36610fb0565b94909116600052600782526040600020826040519483868095519384920161065b565b54166040519015158152f35b34610431576000366003190112610431576020601354604051908152f35b346104315760203660031901126104315761ffff600435611c3881610425565b166000526001602052610c24611c586040600020604051928380926112e0565b805115611c765761070381611c7061070f9351613923565b90615764565b60405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f72640000006044820152606490fd5b60809060431901126104315760405190611cd482610d60565b81604435611ce181610842565b8152606435611cef81610842565b6020820152608435611d0081610842565b6040820152606060a43591611d1483610842565b0152565b91909160e08184031261043157611d2d610dd4565b9281358452611d3e60208301610436565b6020850152611d4f60408301610436565b6040850152611d606060830161086d565b60608501526001600160401b039160808101358381116104315782611d86918301610e9e565b608086015260a081013592831161043157611da860c092611db3948301610e9e565b60a08601520161086d565b60c0830152565b60031961010036820112610431576001600160401b0390602435908282116104315760609082360301126104315760405190611df582610d7b565b8060040135611e0381610842565b825260248101356020830152604481013590838211610431576004611e2b9236920101610e9e565b6040820152611e3936611cbb565b60c43592831161043157611e54610019933690600401611d18565b90611e5d610853565b92600435613ea2565b3461043157604036600319011261043157600435611e8381610842565b60243590336000526009602052611e9e816040600020612194565b5491808310611ebf57611eb392039033612d30565b60405160018152602090f35b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346104315760e036600319011261043157600435611f2f81610425565b6001600160401b039060643582811161043157611f50903690600401610443565b608492919235611f5f81610470565b60a43591611f6c836109f0565b60c43595861161043157611f87611f97963690600401610443565b9590946044359060243590614b5c565b60408051928352602083019190915290f35b3461043157611fb736610bb4565b90611fc0612b17565b60405192602092808385870137611fec6034868381013060601b88820152036014810188520186610db1565b61ffff8216600090815260018086526040822087519296909291906001600160401b038311610d5b576120298361202386546112a6565b8661491d565b80601f84116001146120875750918080926120769695948a9b6000805160206159918339815191529b9461207c575b50501b916000199060031b1c19161790555b60405193849384614902565b0390a180f35b015192503880612058565b91939498601f19841661209f87600052602060002090565b938a905b8282106120f457505091600080516020615991833981519152999a95939185612076989694106120db575b505050811b01905561206a565b015160001960f88460031b161c191690553880806120ce565b8088869782949787015181550196019401906120a3565b34610431576040366003190112610431576108a260043561212b81610842565b6024359033612c61565b34610431576000366003190112610431576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b6001600160a01b0316600090815260086020526040902090565b9060018060a01b0316600052602052604060002090565b3461043157604036600319011261043157602060ff611bee6024356121cf81610842565b600435600052600f84526040600020612194565b34610431576020366003190112610431577f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b602060043561222381610842565b61222b612b17565b600480546001600160a01b0319166001600160a01b03929092169182179055604051908152a1005b9181601f84011215610431578235916001600160401b03831161043157602080850194610160850201011161043157565b61016036600319011261043157612299610860565b6001600160401b0390606435828111610431576122ba90369060040161112f565b90608435838111610431576122d3903690600401611605565b6122dc36611624565b9061012435858111610431576122f6903690600401610443565b9290916101443596871161043157612315610019973690600401612253565b969095604435906024359061309a565b346104315760003660031901126104315760206040516127108152f35b346104315760803660031901126104315760043561235f81610425565b60243561236b81610425565b6064356001600160401b0381116104315761238a903690600401610443565b9092612394612b17565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b156104315760008094610f7e604051978896879586946332fb62e760e21b865261ffff80921660048701521660248501526044356044850152608060648501526084840191612f0b565b3461043157600036600319011261043157600e546040516001600160a01b039091168152602090f35b61243d36610481565b9161ffff8694929616600052600560205261247181604060002060206040518092878b83378782019081520301902061101b565b5491821561251b5761250a84836125037fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e59a60006124ef84611b958e8a8f6125169f908f6124d5906124c86124e99436908d610e67565b6020815191012014614acf565b61ffff166000526005602052604060002090565b91614ab6565b556124fb36878d610e67565b933691610e67565b9188614d5e565b60405195869586614b25565b0390a1005b60405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b6064820152608490fd5b3461043157604036600319011261043157602061107d60043561258e81610842565b6024359061259b82610842565b6001600160a01b031660009081526009845260409020612194565b34610431576000366003190112610431576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346104315760603660031901126104315760043561261881610425565b60243561262481610425565b60443591612630612b17565b82156126ab576125167f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac09361ffff83166000526002602052806126858560406000209061ffff16600052602052604060002090565b556040519384938460409194939294606082019561ffff80921683521660208201520152565b60405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b6044820152606490fd5b3461043157600036600319011261043157602060405160018152f35b34610431576020366003190112610431577f1584ad594a70cbe1e6515592e1272a987d922b097ead875069cebe8b40c004a46020600435612744816109f0565b61274c612b17565b151560ff196006541660ff821617600655604051908152a1005b34610431576101003660031901126104315760043561278481610425565b6001600160401b0390602435828111610431576127a5903690600401610443565b9190604435906127b482610470565b6084356127c081610842565b60c435958611610431576127db610019963690600401610443565b94909360e4359660a4359460643593614c4d565b34610431576127fd36610bb4565b9190612807612b17565b61ffff82166000908152600160208181526040832092949291906001600160401b038711610d5b576128438761283d85546112a6565b8561491d565b8590601f8811600114612898575091868087989361207695600080516020615a11833981519152999361288d575b501b906000198460031b1c191617905560405193849384614902565b880135925038612871565b90601f1988166128ad85600052602060002090565b9288905b82821061290157505091889391600080516020615a1183398151915298996120769694106128e7575b505082811b01905561206a565b870135600019600386901b60f8161c1916905538806128da565b808685968294968c013581550195019301906128b1565b3461043157604036600319011261043157602060ff611bee60243561293c81610842565b600435600052601084526040600020612194565b3461043157600036600319011261043157602060ff600654166040519015158152f35b346104315760203660031901126104315760043561299081610842565b612998612b17565b6001600160a01b0390811680156129d457600080546001600160a01b03198116831782559092166000805160206159d18339815191528380a380f35b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b3461043157608036600319011261043157600435612a4581610425565b60243590612a5282610425565b612a5d604435610842565b604051633d7b2f6f60e21b815261ffff91821660048201529116602482015230604482015260648035908201526000816084817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561082d5761070f91600091612adb575b50604051918291826106a3565b612af6913d8091833e612aee8183610db1565b8101906148dd565b38612ace565b34610431576000366003190112610431576020604051308152f35b6000546001600160a01b03163303612b2b57565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b634e487b7160e01b600052601160045260246000fd5b90601f8201809211610b5857565b6051019081605111610b5857565b91908201809211610b5857565b15612bb557565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b15612c0d57565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b916001600160a01b038084169290918315612cdd57612cc2826000805160206159f183398151915294612cd8941696612c9b881515612bae565b612cbc84612ca88361217a565b54612cb582821015612c06565b039161217a565b5561217a565b8054820190556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b038082169291908315612df8578216938415612da85780612d977f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92594612d92612cd89560018060a01b03166000526009602052604060002090565b612194565b556040519081529081906020820190565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9060018060a01b0382166000526009602052612e69816040600020612194565b549260018401612e795750505050565b808410612e9457612e8b930391612d30565b3880808061130d565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b9035601e1982360301811215610431570160208101919035906001600160401b03821161043157813603831361043157565b908060209392818452848401376000828201840152601f01601f1916010190565b906060612f606106b4938035612f4181610842565b6001600160a01b03168452602081810135908501526040810190612ed9565b9190928160408201520191612f0b565b906106b490823581526020830135612f8781610425565b61ffff80911660208301526040840135612fa081610425565b1660408201526060830135612fb481610842565b6001600160a01b0316606082015260c080613004612fe9612fd86080880188612ed9565b60e0608088015260e0870191612f0b565b612ff660a0880188612ed9565b9086830360a0880152612f0b565b9401359161301183610842565b01906118ac565b6060908181359161302883610842565b6001600160a01b03928316855282602082013561304481610842565b16602086015282604082013561305981610842565b166040860152013561306a81610842565b16910152565b60ff81160361043157565b359061044182613070565b356106b481610425565b356106b481610842565b98926130ca6130c46130bd6130b66020969a99959c989c6152bf565b50996152bf565b5098615240565b97615240565b60408051610304868201526001600160a01b038d1691810182905260608101919091526001600160401b039889166080820152971660a088015261018060c08801819052906131449061313890613126906101a08b0190612f2c565b898103601f190160e08b01528b612f70565b92610100890190613018565b868203601f19019087015282815201919060005b8181106131e757505050916131b694939161317f826117839503601f198101845283610db1565b602085019461318d86613086565b9261177d6131ac60606131a5610f2960c08701613090565b9401613090565b9334963691610e67565b604051600081526001600160a01b039290921691339161ffff169060008051602061597183398151915290602090a4565b909192806132006001926131fa876109fa565b15159052565b61321861320f602087016109fa565b15156020830152565b6132316132276040870161086d565b60408301906118ac565b613249613240606087016109fa565b15156060830152565b6132626132586080870161086d565b60808301906118ac565b61327b61327160a0870161086d565b60a08301906118ac565b60c085013560c082015260e085013560e08201526132aa61329f610100870161307b565b60ff16610100830152565b610120858101359082015261014080860135908201526101609081019401929101613158565b519061044182610425565b9081602091031261043157516106b481610425565b6040513d6000823e3d90fd5b9490613339613352946101209694613344939a999a6103078a5260208a015260018060401b031660408901526101408060608a0152880190612f2c565b926080870190613018565b848203610100860152612f70565b6001600160a01b03909416910152565b903590601e198136030182121561043157018035906001600160401b0382116104315760200191813603831361043157565b519061044182610842565b519061044182610470565b81601f820112156104315780516133c081610e4c565b926133ce6040519485610db1565b81845260208284010111610431576106b4916020808501910161065b565b9190606083820312610431576040519061340582610d7b565b8193805161341281610842565b8352602081810151908401526040810151916001600160401b0383116104315760409261343f92016133aa565b910152565b91909160e08184031261043157613459610dd4565b928151845261346a602083016132d0565b602085015261347b604083016132d0565b604085015261348c60608301613394565b606085015260808201516001600160401b03929083811161043157826134b39183016133aa565b608086015260a0810151928311610431576134d560c092611db39483016133aa565b60a086015201613394565b9190826080910312610431576040516134f881610d60565b6060808294805161350881610842565b8452602081015161351881610842565b6020850152604081015161352b81610842565b6040850152015191611d1483610842565b5190610441826109f0565b519061044182613070565b81601f82011215610431578051906001600160401b038211610d5b576040805193602091613585838660051b0187610db1565b848652828601918361016080970286010194818611610431578401925b8584106135b3575050505050505090565b8684830312610431578487916135c7610df3565b6135d08761353c565b81526135dd83880161353c565b838201526135ec868801613394565b8682015260606135fd81890161353c565b90820152608061360e818901613394565b9082015260a061361f818901613394565b9082015260c0808801519082015260e08088015190820152610100613645818901613547565b90820152610120808801519082015261014080880151908201528152019301926135a2565b9190916101808184031261043157613681816132d0565b9260208201519261369460408401613394565b926136a16060820161339f565b926136ae6080830161339f565b60a083015190936001600160401b039182811161043157836136d19186016133ec565b9360c081015183811161043157846136ea918301613444565b936136f88160e084016134e0565b93610160830151908111610431576106b49201613552565b90606060406106b49360018060a01b03815116845260208101516020850152015191816040820152019061067e565b908151815261ffff806020840151166020830152604083015116604082015260c060018060a01b03806060850151166060840152816137a2613790608087015160e0608088015260e087019061067e565b60a087015186820360a088015261067e565b9401511691015290565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b9695936138169060a094613824946104419894600180891b03168b5260208b015260408a01526101208060608b0152890190613710565b90878203608089015261373f565b9401906137ac565b9190916101408184031261043157805161384581610425565b92602082015192604083015161385a81610470565b606084015190936001600160401b03929091838111610431578461387f9184016133ec565b9361388d81608085016134e0565b9361010084015190811161043157610120916138aa918501613444565b9201516106b481610842565b936138e66138db6133529460e0969499989988526101008060208a0152880190613710565b9260408701906137ac565b84820360c086015261373f565b3d1561391e573d9061390482610e4c565b916139126040519384610db1565b82523d6000602084013e565b606090565b601319810191908211610b5857565b605019810191908211610b5857565b91908203918211610b5857565b6001600160a01b039091168152602081019190915260400190565b6139f591600080604051936139a3856139956020998a83019763a9059cbb60e01b89526024840161394e565b03601f198101875286610db1565b60018060a01b031692604051946139b986610d96565b8786527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c656488870152519082855af16139ef6138f3565b91613a86565b80519081613a0257505050565b8280613a12938301019101613a71565b15613a1a5750565b6084906040519062461bcd60e51b82526004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152fd5b9081602091031261043157516106b4816109f0565b91929015613ae85750815115613a9a575090565b3b15613aa35790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b825190915015613afb5750805190602001fd5b60405162461bcd60e51b8152908190613b1790600483016106a3565b0390fd5b919082604091031261043157604080519081016001600160401b03811182821017610d5b5760405260208082948051613b53816109f0565b8452015191611d14836109f0565b9081810391610140831261043157604091825193613b7e85610d7b565b60808112610431576080908451613b9481610d60565b8451613b9f81610842565b81526020850151602082015285850151613bb881610842565b86820152606085015160608201528652607f19011261043157610100613c12928451613be381610d60565b6080820151815260a0820151602082015260c08201518682015260e08201516060820152602087015201613b1b565b9082015290565b9190826040910312610431576020825192015190565b91926106b49493613cad6040613cbe946060815160018060a01b03808251168a52602082015160208b01528482015116848a01520151606088015260606020820151805160808a0152602081015160a08a01528381015160c08a0152015160e088015201516101008601906020809180511515845201511515910152565b6101408401526101608301906118ac565b6101a09081610180820152019061067e565b60405190613cdd82610d96565b6002825261060f60f31b6020830152565b9060a060806106b4938051151584526020810151602085015260408101511515604085015261ffff6060820151166060850152015191816080820152019061067e565b60608051808352602080930192608080936000915b848310613d565750505050505090565b909192939495846101606001928951613d7182825115159052565b80840151151582850152613d8d604080830151908401906118ac565b80870151151582880152613da786820151878401906118ac565b613db960a080830151908401906118ac565b60c0818101519083015260e080820151908301526101008082015160ff169083015261012081810151908301526101409081015190820152019701959493019190613d46565b94916060613e41613e949661ffff613e75976106b49c9b9660018060a01b0396878092168d521660208c01521660408a015261018080848b015289019061067e565b9380516080890152602081015160a08901528260408201511660c089015201511660e0860152848203610100860152613cee565b83516101208401526020909301516001600160a01b0316610140830152565b610160818303910152613d31565b939092613eb985613eb38551610836565b30612d30565b613ec9610f29610f298551610836565b93613ed48151610836565b60408051631fd177af60e11b81523060048201526001600160a01b0392909216602483015260448201979097526000606482018190526084820181905260a48201526101409690959091908790879060c49082905afa95861561082d57613f7e976000976141be575b505081613f50610f29610f298851610836565b9660209788840151916000848601519385519c8d958694859363efa84c6d60e01b8552309160048601613c2f565b03925af196871561082d57600097614192575b50610f29610f29613fa29251610836565b613fd2868884880193613fb58551610836565b6000875180968195829463095ea7b360e01b84526004840161394e565b03925af1801561082d57614165575b50613ff2610f29610f298351610836565b803b15610431578251630c46aac760e31b81523060048201819052602482015260448101899052906000908290606490829084905af1801561082d5761404692610f2992610f2992614152575b5051610836565b9247916140578785015161ffff1690565b936140ae60a08201519761409e61407d60606140758d850151610836565b930151610836565b9160008c614089610e13565b9e8f528e01526001600160a01b0316858d0152565b6001600160a01b031660608b0152565b61410a6140b9610e20565b9860008a526000818b01526000848b0152600060608b01526140d9613cd0565b60808b01526140ed60608451940151610836565b906140f6610e3f565b9384526001600160a01b0390911690830152565b853b15610431576000976141349251998a9889978896630cdc41b960e11b88523060048901613dff565b03925af1801561082d576141455750565b80610f9b61044192610d48565b80610f9b61415f92610d48565b3861403f565b61418490873d891161418b575b61417c8183610db1565b810190613a71565b5038613fe1565b503d614172565b613fa2919750610f296141b4610f2992853d8711610b0657610af78183610db1565b5098925050613f91565b6141de929750803d106141e6575b6141d68183610db1565b810190613b61565b943880613f3d565b503d6141cc565b80518210156142015760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b9360ff929897969360c0969260e087019a60018060a01b0380921688521660208701526040860152606085015216608083015260a08201520152565b60009060033d1161426057565b905060046000803e60005160e01c90565b600060443d106106b457604051600319913d83016004833e81516001600160401b03918282113d6024840111176142ce578184019485519384116142d6573d850101602084870101116142ce57506106b492910160200190610db1565b949350505050565b50949350505050565b60005b81518110156146c25761430260606142fa83856141ed565b510151151590565b1561447557604061432c610f29610f298361431d86886141ed565b5101516001600160a01b031690565b9061433c608061431d85876141ed565b61434b60a061431d86886141ed565b9260c061435886886141ed565b51015160e061436787896141ed565b5101519061438461010061437b898b6141ed565b51015160ff1690565b93610120614392898b6141ed565b5101516101406143a28a8c6141ed565b51015190853b1561043157875196879586956301da8bf160e41b875260049b8c8801966143ce97614217565b03815a6000948591f19081614462575b50614458576001916143ee614253565b6308c379a014614409575b505061082d576001905b016142e2565b614411614271565b908161441e575b506143f9565b60009350909161443a61443660206142fa888a6141ed565b1590565b15614418575162461bcd60e51b8152918291613b17919083016106a3565b5050600190614403565b80610f9b61446f92610d48565b386143de565b61448961448282846141ed565b5151151590565b156145f45760406144a4610f29610f298361431d86886141ed565b906144b4608061431d85876141ed565b916144c460a061431d86886141ed565b60e06144d086886141ed565b510151916144e461010061437b888a6141ed565b906101206144f2888a6141ed565b51015193610140614503898b6141ed565b510151823b1561043157865163aba0784760e01b81526001600160a01b03988916600480830191909152989095166024860152604485019190915260ff9092166064840152608483019390935260a482015290600090829081838160c4810103925af190816145e1575b506144585760019161457d614253565b6308c379a014614596575b505061082d57600190614403565b61459e614271565b90816145ab575b50614588565b6000935090916145c361443660206142fa888a6141ed565b156145a5575162461bcd60e51b8152918291613b17919083016106a3565b80610f9b6145ee92610d48565b3861456d565b604061460a610f29610f298361431d86886141ed565b9061461a608061431d85876141ed565b61462960a061431d86886141ed565b9260c061463686886141ed565b51015160e061464587896141ed565b5101519061465961010061437b898b6141ed565b93610120614667898b6141ed565b5101516101406146778a8c6141ed565b51015190853b15610431578751968795869563d505accf60e01b875260049b8c8801966146a397614217565b03815a6000948591f190816145e157506144585760019161457d614253565b5050565b156146cd57565b60405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b6064820152608490fd5b926147466106b497959361ffff6147549416865260c0602087015260c086019061067e565b90848203604086015261067e565b6001600160a01b0391821660608401529316608082015280830360a09091015261067e565b946147a29193929561ffff811660005260016020526147a96040600020604051948580926112e0565b0384610db1565b825115614810576147bb85518261486e565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031693843b156104315760009661413491604051998a988997889662c5803160e81b885260048801614721565b60405162461bcd60e51b815260206004820152603060248201527f4c7a4170703a2064657374696e6174696f6e20636861696e206973206e6f742060448201526f61207472757374656420736f7572636560801b6064820152608490fd5b61ffff1660005260036020526040600020549081156148d3575b1161488f57565b606460405162461bcd60e51b815260206004820152602060248201527f4c7a4170703a207061796c6f61642073697a6520697320746f6f206c617267656044820152fd5b6127109150614888565b906020828203126104315781516001600160401b038111610431576106b492016133aa565b60409061ffff6106b495931681528160208201520191612f0b565b90601f811161492b57505050565b600091825260208220906020601f850160051c83019410614967575b601f0160051c01915b82811061495c57505050565b818155600101614950565b9092508290614947565b9290916149e35a604051633356ae4560e11b602082015261ffff8716602482015260806044820152906149dd826149cf6149ae60a483018a61067e565b6001600160401b03881660648401528281036023190160848401528861067e565b03601f198101845283610db1565b30615913565b9390156149f2575b5050505050565b6149fb94614a05565b38808080806149eb565b9193614aa37fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c95614ab1939561ffff81516020830120961695866000526005602052614a698361106f60208b6040600020826040519483868095519384920161065b565b55614a86604051978897885260a0602089015260a088019061067e565b6001600160401b039092166040870152858203606087015261067e565b90838203608085015261067e565b0390a1565b6020919283604051948593843782019081520301902090565b15614ad657565b60405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b6064820152608490fd5b9160609361ffff614b489398979698168452608060208501526080840191612f0b565b6001600160401b0390951660408201520152565b9491959897906115396130c4604099614b7d614b8597614ba2993691610e67565b943691610e67565b928451968794859463040a7bb160e41b8652309060048701614d1a565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa91821561082d576000908193614be557509190565b90506104e291925060403d8111610b0657610af78183610db1565b939694916106b498969361ffff614c259316865260c0602087015260c0860191612f0b565b6001600160401b0390961660408401526060830152608082015280840360a090910152612f0b565b91969792989594939094303303614cd557614c69908530615601565b60405181815290946001600160a01b03169390849061ffff8516906000805160206159b183398151915290602090a3833b15610431576000988995614cc5936040519c8d9b8c9a8b98633fe79aed60e11b8a5260048a01614c00565b0393f1801561082d576141455750565b60405162461bcd60e51b815260206004820152601f60248201527f4f4654436f72653a2063616c6c6572206d757374206265204f4654436f7265006044820152606490fd5b91926106b4959361ffff614d499316845260018060a01b0316602084015260a0604084015260a083019061067e565b9215156060820152608081840391015261067e565b92919060ff614d6c846158b8565b1680614ea65750505060ff614d80826158b8565b161580614e9b575b614d9190615311565b614da3614d9d82615868565b91615903565b90916001600160a01b039182841615614e91575b614dd290614dc3615638565b906001600160401b03166152ac565b918316928315614e4c576000805160206159b183398151915291614e0c61ffff92614e07614e0287600a54612ba1565b600a55565b61217a565b8481540190558460006000805160206159f183398151915260405180614e3789829190602083019252565b0390a360405193845216918060208101612cd8565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b61dead9350614db7565b508051602914614d88565b600103614eb65761044193614fcf565b60405162461bcd60e51b815260206004820152601c60248201527b4f4654436f72653a20756e6b6e6f776e207061636b6574207479706560201b6044820152606490fd5b15614f0157565b60405162461bcd60e51b815260206004820152601960248201527813d19510dbdc994e88185b5bdd5b9d081d1bdbc81cdb585b1b603a1b6044820152606490fd5b9897969293614f6c60e0979361ffff614fa19894168c5260208c61010091829101528c019061067e565b6001600160401b0390951660408b015260608a01526001600160a01b0316608089015260a088015286820360c088015261067e565b930152565b614fbe6040929594939560608352606083019061067e565b94600180841b031660208201520152565b9091614fda846153c2565b9091614ffc614ff587611b95614fef8b610c48565b8c610ff5565b5460ff1690565b91615018615008615638565b6001600160401b039384166152ac565b9288888b8315615114575b505050853b156150c9579461506a96946149dd948a946149cf948d996000146150c25750505a925b5a978b6040519a8b9863757fea4d60e11b60208b015260248a01614f42565b90156150b75750906150b261ffff928560207fb8890edbfc1c74692f527444645f95489c3703cc2df42e4a366f5d06fa6cd88496975191012090604051948594169684614fa6565b0390a2565b926104419492614a05565b169261504b565b50506040516001600160a01b039094168452507f9aedf5fdba8716db3b6705ca00150643309995d4f818a249ed6dde6677e7792d975091955085945050602084019250614ab1915050565b90611b95611b9a926151348961512e61513a979b306155b1565b99610c48565b90610ff5565b88888b615023565b60065460ff161561518f5760228251106115405761ffff602261044193015191166000526002602052615182604060002060008052602052604060002090565b5490611507821515615197565b50516115b157565b1561519e57565b60405162461bcd60e51b815260206004820152601a602482015279131e905c1c0e881b5a5b91d85cd31a5b5a5d081b9bdd081cd95d60321b6044820152606490fd5b156151e757565b60405162461bcd60e51b815260206004820152601b60248201527a4c7a4170703a20676173206c696d697420697320746f6f206c6f7760281b6044820152606490fd5b634e487b7160e01b600052601260045260246000fd5b615248615638565b9081156152a7576001600160401b03919004818111615265571690565b60405162461bcd60e51b815260206004820152601a6024820152794f4654436f72653a20616d6f756e745344206f766572666c6f7760301b6044820152606490fd5b61522a565b81810292918115918404141715610b5857565b6152c7615638565b80156152a757810690818103908111610b585791565b60405160006020820152602181019190915260c09190911b6001600160c01b0319166041820152602981526106b481610d7b565b1561531857565b60405162461bcd60e51b815260206004820152601860248201527713d19510dbdc994e881a5b9d985b1a59081c185e5b1bd85960421b6044820152606490fd5b93926071926106b494604051968794600160f81b6020870152602186015260018060c01b0319809360c01b16604186015260018060a01b0316604985015260c01b1660698301526153b2815180926020868601910161065b565b8101036051810184520182610db1565b906153da600160ff6153d3856158b8565b1614615311565b6153e382615868565b906153ed83615903565b90604984511061545e5760498401519360518151106154225761541f6051820151916154198151613932565b906157e4565b91565b60405162461bcd60e51b8152602060048201526014602482015273746f55696e7436345f6f75744f66426f756e647360601b6044820152606490fd5b60405162461bcd60e51b8152602060048201526015602482015274746f427974657333325f6f75744f66426f756e647360581b6044820152606490fd5b6001600160a01b03811633810361554a575b80156154fb57816154d0846154c360009561217a565b54612cb58282101561555a565b556154de83600a5403600a55565b6040518381526000805160206159f183398151915290602090a390565b60405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b615555833384612e49565b6154ad565b1561556157565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608490fd5b6001600160a01b03811691908215614e4c57600a5490828201809211610b58576000926155f26020926000805160206159f183398151915294600a5561217a565b818154019055604051908152a3565b6106b49183916001600160a01b03811630811415908161562d575b5015612c61576109cf833383612e49565b90503314153861561c565b6040516303408e4760e41b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa801561082d5761ffff916000916156c9575b5016600052600d60205260ff604060002054166156a557600190565b7f000000000000000000000000000000000000000000000000000000000000000090565b6156e1915060203d81116117d7576117c88183610db1565b38615689565b156156ee57565b60405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b6044820152606490fd5b1561572b57565b60405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b6044820152606490fd5b6157788261577181612b85565b10156156e7565b6157858282511015615724565b8161579d575050604051600081526020810160405290565b60405191601f811691821560051b808486010193838501920101905b8084106157d15750508252601f01601f191660405290565b90928351815260208091019301906157b9565b6157f18261577181612b85565b61580681516157ff84612b93565b1115615724565b8161581e575050604051600081526020810160405290565b60405191601f8116916051831560051b80858701019484860193010101905b8084106158555750508252601f01601f191660405290565b909283518152602080910193019061583d565b602181511061587b57602d015160601c90565b60405162461bcd60e51b8152602060048201526015602482015274746f416464726573735f6f75744f66426f756e647360581b6044820152606490fd5b60018151106158c8576001015190565b60405162461bcd60e51b8152602060048201526013602482015272746f55696e74385f6f75744f66426f756e647360681b6044820152606490fd5b6029815110615422576029015190565b6040519392909160009160c08601916001600160401b03831187841017610d5b5783926040526096875282602088019560a036883760208451940192f1903d9060968211615967575b6000908286523e9190565b6096915061595c56fed81fc9b8523134ed613870ed029d6170cbb73aa6a6bc311b9a642689fb9df59a8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572cebf551ec93859b170f9b2141bd9298bf3f64322c6f7beb2543a0cb669834118bf8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3effa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470daba2646970667358221220e73d76ee288aa4a3ca03ce08f7918ca1a935c6bdbb8fb0ac222872cb9bcd0e4964736f6c6343000812003300000000000000000000000093f54d755a063ce7bb9e6ac47eccc8e33411d706000000000000000000000000e946a07d980f310e1b95969549d383cb68782aa4